gpt4 book ai didi

javascript - 在 javascript 中迭代项目的最佳方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 01:59:19 25 4
gpt4 key购买 nike

我最近遇到了一种在 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找出来。结果非常惊人。我预计第二种方法会比第一种方法快一点,但实际上要快得多。

我在这里缺少缺点吗?或者这是遍历列表项的最佳方式。

更新:

灰色状态即将来临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];
}

最佳答案

我认为第一种形式更好。第二种形式有一些问题。如果您有一个包含 falsy 值的稀疏数组怎么办?比如:var testData = [ "text", undefined, false, 0, 5 ];

我也希望第一种形式表现更好。特别是如果你像这样“缓存”testData.length 的值:

var i, len = testData.length;
for (i = 0; i < len; i += 1) {
total = total + testData[i];
}

关于javascript - 在 javascript 中迭代项目的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12357464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com