我一直在玩javascript,發現(至少對我來說)在通過foreach循環處理多維數組時遇到的奇怪行爲。所以我有這樣一段代碼:javascript foreach如何處理多維數組?
<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。對於例如this:'arr.forEach(function(is){is.forEach(function(his){console.log(his)})});'做的是正確的事情。 – 2013-03-17 10:31:14
@CrisStringfellow我還發現這個問題的標題是誤導性的,因爲我正在尋找有關'forEach'循環的信息。那麼這個問題的標題應該是什麼? – 2013-07-20 22:34:12