gpt4 book ai didi

javascript - 使用 forEach 和 .shift() 时结果不一致

转载 作者:行者123 更新时间:2023-11-30 00:10:25 25 4
gpt4 key购买 nike

所以这里有两个 fiddle :

Fiddle 1

Fiddle 2

当使用 forEach 然后在循环内进行数组移位时,输出结果会重复,但如果我使用常规 for 循环并使用移位后的返回作为输出,它会正常工作。

所以两者之间的唯一区别是:

var queueSize = testArray.length;

if (queueSize > 0) {
testArray.forEach(function (loopData) {
jQuery('.js-target').append(loopData+'<br>');
testArray.shift();
});
}

相比于:

for (var i = 0; i < testArray.length; i++) {
var d = testArray.shift();

jQuery('.js-target').append(d+'<br>');
}

对我来说,第一个应该和第二个一样好用。 (数据通过推送添加到 testArray,即添加到数组的末尾)。是不是我对 shift 函数不理解?

最佳答案

shift 方法将删除数组开头的元素。因此,第二个示例中的数组在每次迭代时都会缩短。

The shift method removes the element at the zeroeth index and shifts the values at consecutive indexes down, then returns the removed value. If the length property is 0, undefined is returned.

参见 the MDN docs以获得完整的概述。

关于javascript - 使用 forEach 和 .shift() 时结果不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716409/

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