私は最近、Javascriptの配列を介してループする別の方法に出くわしました。
私は次のようなループを書いていました:
for (var len = 0; len < testData.length; len++) {
total = total + testData[len];
}
私はそれをこのようにしたいくつかのコードを読みました:
for (var len = 0; testData[len]; len++) {
total = total + testData[len];
}
これらがどのように機能するのか疑問に思っていたので、jsPerfを使用して調べました。結果はかなり素晴らしいです。2番目の方法は最初の方法よりも少し速いと思っていましたが、実際にははるかに高速です。
私がここで見逃している欠点はありますか?または、これはリストのアイテムをループするための最良の方法です。
アップデート:
灰色の状態が来ており、Diodeはテストケースの単純な欠陥を指摘しました。
間違いを訂正した後、これが最速です。
var datalen = testData.length;
for (var len = 0; len <datalen; len++) {
total = total + testData[len];
}
アップデート2:
さらにいくつかのブラウザでテストした後、このテストケースは再び別の方向に進みます。ChromeとOperaでのみ、通常のforループが最速です。他のすべてのブラウザでは、 Shmiddtyの方法は少し高速です。
var i = testData.length, sum=0;
while (i--){
sum += testData[i];
}