我有一个如下循环:
for (var i = 0; i < arr.length; i++) {
console.log(arr);
// rest of the code does not touch 'arr'
...
}
但是,在浏览器控制台(Chrome)中,我不断收到此消息:
Array[0]
length: 0
__proto__: Array[0]
作为console.log(arr)
的输出,这表明arr
中没有任何内容。但是日志语句怎么可能被执行呢?!
最佳答案
可能,脚本末尾的数组为空,因为 chrome 控制台会向您显示对象的当前状态(当对象本身更改时也会更改)脚本执行后打开时。 (我认为这是一个问题)
要重现此内容:
var arr = [1];
for (var i = 0; i < arr.length; i++) {
console.log(arr);
}
arr.pop(); // empty the array
http://jsfiddle.net/47nrc/ (仅适用于 Chrome)
在控制台关闭的情况下执行它,然后当你打开它时你可以看到Array[0]
一种解决方案可能是记录数组的字符串表示形式:
console.log(arr.join());
另请参阅:https://code.google.com/p/chromium/issues/detail?id=50316
关于javascript - 循环内的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19451391/