我在尝试使用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) } ) } );
是正确的做法。 - Cris StringfellowforEach
循环的信息。那么这个问题的标题应该是什么? - Anderson Green