[解決済み】JavaScriptで配列をループする最速の方法は何ですか?
2022-03-30 20:24:03
質問
本でforループはこう書けというのを知りました。
for(var i=0, len=arr.length; i < len; i++){
// blah blah
}
ということで
arr.length
は毎回計算されることはありません。
また、これに対してコンパイラが最適化を行うので、そのまま書けばいいという人もいます。
for(var i=0; i < arr.length; i++){
// blah blah
}
実際のところ、どれが一番いい方法なのか知りたいんです。
どのように解決するのですか?
ほとんどのモダンブラウザでこのテストを実行した後。 https://jsben.ch/wY5fo
現在 は、ループの最も速い形式です(そして、私の意見では、最も構文的に明白です)。
長さをキャッシュする標準的なfor-loop
var i = 0, len = myArray.length;
while (i < len) {
// your code
i++
}
これは間違いなく、JavaScriptエンジンの開発者に拍手を送るべきケースだと思います。ランタイムは 巧妙さではなく、明確さ .
関連
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】npm install --legacy-peer-deps は具体的に何をするのですか?どんなときに推奨されるのか/どんな使用例が考えられるのか?
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み] オブジェクト配列のindexOfメソッド?
-
[解決済み】ループは本当に逆回転で速くなるのか?