我想弄清楚为什么下面的代码只弹出数组的最后 3 项而不是最后两项。
var test = ['test1','test2','test3','test4','test5'];
console.log('length - '+test.length);
for(var k = 0; k <= test.length; k++) {
var tests = test.pop();
console.log(tests+' - '+k);
}
以上代码的结果:
length - 5
(index):30 test5 - 0
(index):30 test4 - 1
(index):30 test3 - 2
最佳答案
Array.prototype.pop
方法修改了原始数组,因此 for-loop 当然只会访问一半的值,直到数组完全清空。
您可以做的是改用 while 循环:
var test = ['test1', 'test2', 'test3', 'test4', 'test5'];
console.log('length - ' + test.length);
while (test.length) {
var tests = test.pop();
console.log(tests);
}
关于javascript - 在 Javascript for 循环中弹出数组未获取所有数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33224711/