循环内输出奇怪
Strange output within loop
我有一个如下所示的循环:
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/(仅适用于镶边)
在控制台关闭的情况下执行它,然后当您打开它时,您可以看到Array[0]
一种解决方案可能是记录数组的字符串表示形式:
console.log(arr.join());
另请参阅:https://code.google.com/p/chromium/issues/detail?id=50316
看这个小提琴: http://jsfiddle.net/r9exf/
var arr = [];
for (var i = 0; i < arr.length; i++) {
console.log("arr = " + arr);
// rest of the code does not touch 'arr'
}
与以下相比:
var arr2 = [1,2,3];
for (var i = 0; i < arr2.length; i++) {
console.log("arr2 = " + arr2);
// rest of the code does not touch 'arr'
}
您的代码(假设您提供的就是您拥有的)工作正常。它不会进入循环(请参阅第一种情况并与小提琴中的第二种情况进行比较)。
因此,它一定在代码中的其他地方记录此数组。
相关文章:
- 如何将angularjs中的javascript字符串输出为循环数组
- 一个ajax循环有两个输出错误innerHTML
- 循环时输出额外+;javascript
- for 循环使输出并排 jQuery
- for语句循环小写输出
- 如何在 p5.js 中将 For 循环的文本输出替换为不同的值
- 如何使用嵌套循环使用 Javascript 打印到外部循环的输出中
- 无法让 JSON 输出循环
- 当在 Javascript 中使用许多 for 循环时,输出是未定义的
- JavaScript 循环输出
- JavaScript 循环输出顺序不正确 - 如何解决这个问题
- For 循环不迭代,输出的数据不超过第一个任务
- 循环遍历json_encode的输出
- 在 HTML 中循环写入(输出)语句
- 如何让 jquery 在循环中的每个 ajax 调用后立即附加输出
- 为什么 javascript 对象在循环遍历数组时输出为“未定义”
- 如何循环显示来自跟踪路由输出的谷歌地图v3中的标记
- 将所有输出放在 JavaScript 中 while 循环中的特定文本框中
- Angular延迟实现只输出循环的最后一个值
- 使用for(..)遍历数组时的意外输出)循环