【发布时间】:2011-03-16 18:08:22
【问题描述】:
我玩了一点 JavaScript,发现(至少对我来说)通过 for...in 循环处理多维数组时出现了奇怪的行为。所以我有这段代码:
<script type="text/javascript">
var arr = [['a', 'b'], ['c','d']];
var first='';
for (var singleArray in arr) {
first += ' ' + singleArray[0] + ' ' + singleArray[1];
}
var second = '';
for (var i=0;i<arr.length; i++) {
second += ' ' + arr[i][0] + ' ' + arr[i][1];
}
console.log('First: ', first);
console.log('Second: ', second);
</script>
输出是:
First: 0 undefined 1 undefined
Second: a b c d
我希望第一个和第二个是一样的。你能解释一下我缺少什么吗?
注意:请不要建议通过 jQuery 或其他方式遍历数组。我没有编码问题,我只是对这种特殊情况感到好奇。
【问题讨论】:
-
如果不使用
forEach,则不应将其命名为forEach。例如这:arr.forEach(function(is) { is.forEach( function (his) { console.log(his) } ) } );做正确的事。 -
@CrisStringfellow 我还发现问题的标题具有误导性,因为我正在寻找有关
forEach循环的信息。那么这个问题的标题应该是什么?
标签: javascript arrays