[過去ログ] JavaScript の質問用スレッド vol.125 (1002レス)
上下前次1-新
抽出解除 レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
44(2): (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/03(土)10:05 ID:RJZpwhgn0(1/6) AAS
>>41
要素数や重複要素のばらつき具合によって結果は変わるが、最終的には力業が最速な事が多い
外部リンク:jsfiddle.net
極端な結果になっているのは重複要素がすぐそばにあり、while文による検索ですぐに見つかる為だ
重複要素が遠い位置にあるなら、while文による検索が遅くなるケースも十分にある
>>41のコードが比較的高速なのも重複要素が比較的近くにある為だ
Object.valuesやArray#filterによる変換コストが検索コストより高くついているので、他のコードが比較的遅い
省2
45: (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/03(土)10:08 ID:RJZpwhgn0(2/6) AAS
>>44の補足
jsfiddleのconsoleはconsole.time()を実装していないようだ
ベンチマーク結果はブラウザのコンソールで確認する必要がある
46(1): (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/03(土)10:28 ID:RJZpwhgn0(3/6) AAS
すまん
>>44のwhile_loopは期待通りに動かないので忘れてほしい(console.assert()のコードをミスって気づかなかった)
重複要素のばらつき具合によるが、(>>41の配列においては)暫定最速は>>41
47(1): (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/03(土)10:46 ID:RJZpwhgn0(4/6) AAS
>>46
console.assert()の修正、重複チェックをkindのみに修正したら、mapが最速になった
外部リンク:jsfiddle.net
48: (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/03(土)11:16 ID:RJZpwhgn0(5/6) AAS
>>47
高速化で考えるべきは「ループ回数の削減」と「変換回数の削減」
>>41 source
>>42 reduce
>>47 map
reduceはループ回数は削減されているが、変換回数がsourceよりも多い
要素数6では「変換コスト > 検索コスト」になってしまい、sourceよりも遅い
省6
49(1): (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/03(土)11:42 ID:RJZpwhgn0(6/6) AAS
>>39
a要素でマークアップされているなら、難しくはない
for (let a of document.querySelectorAll('a[href]')) a.target = '_blank';
window.open()などでリンクを開く挙動もJavaScriptで制御しているなら、コードを読んでリンク先を得る手段を考える必要がある
54(1): (ワッチョイ 3501-vbgY [126.94.243.226]) 2022/09/04(日)21:15 ID:SMoCQy1h0(1) AAS
>>51
・直後にscript書いて書き換え前にstyleを取得しておく
・Fetch APIでhtmlをGETしてCSPでscript無効化してparseしてstyleを得る
60: (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/05(月)18:51 ID:ng2JfbNn0(1/3) AAS
>>50
JavaScriptコードが不明なので正確な回答は不可能
>>58の想定通りなら、おそらくその実装が一番楽
tr要素ノードにclickイベントハンドラでwindow.openする実装と仮定して、下記実装が考えられる
1. elementdataset.hrefでリンク先アドレスを得る
2. createElementでa要素ノード生成
3. replaceChildで(A)のDOMになるよう調節
省8
61(1): (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/05(月)19:18 ID:ng2JfbNn0(2/3) AAS
>>59
XPath式を使えば、textContentを使わなくて済む
外部リンク:jsfiddle.net
62: (ワッチョイ 3501-bBdM [126.94.243.226]) 2022/09/05(月)19:25 ID:ng2JfbNn0(3/3) AAS
>>61
テキストノードを子に持つ要素ノードを捕捉するコードにすればよかった
外部リンク:jsfiddle.net
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.033s