2016-02-12 195 views
0

我在Chrome控制檯中看到「Uncaught ReferenceError:i未定義」。 forEach有什麼問題?我在這裏正確使用forEach()函數嗎?謝謝。forEach()匿名函數未定義錯誤

<!DOCTYPE html> 

<script type="text/javascript" src="d3.min.js"> 

<body> 


<!--Place all DOM elements here --> 


<script> 

//Write your code here 
var data = [132,71,337,93,78,43,20,16,30,8,17,21]; 
//console.log(data[0]); 

var donut = {key:"Glazed", value: 132}; 
//console.log(donut.key, donut.value); 

var donuts = [ 
    {key:"Glazed", value: 132}, 
    {key:"Jelly",  value: 71}, 
    {key:"Holes",  value: 337}, 
    {key:"Sprinkles", value: 93} 
]; 
//console.log(donuts[1].key, donuts[1].value); 
/* 
for(var i = 0, len = donuts.length; i < len; i++){ 
    console.log(donuts[i].key, donuts[i].value); 
} 
*/ 

donuts.forEach(function(entry){ 
    console.log(donuts[i].key, donuts[i].value); 
}); 

</body> 

+1

這是一個簡單的錯字/編輯錯誤;投票結束並繼續前進。您在使用'forEach'的版本中沒有'i'變量。使用'entry'而不是'donuts [i]'。 –

回答

5

它是這個樣子:

donuts.forEach(function(entry, i){ 
    console.log(donuts[i].key, donuts[i].value); 
}); 

或更好,而不指數:

donuts.forEach(function(donut){ 
    console.log(donut.key, donut.value); 
}); 
+1

值得一提的是「i」的聲明已被註釋掉。 – christopher

0

對於每個應採取一個參數,如果用任何對象調用的話。使用foreach有不同的方法。此鏈接對您有用。 Foreach different usage...