forEach()匿名函数未定义错误

mar*_*shp 2 javascript

我在chrome控制台中收到"Uncaught ReferenceError:i is not defined".forEach出了什么问题?我在这里正确使用forEach()函数吗?谢谢.

<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)

<script  type="text/javascript" src="d3.min.js">
Run Code Online (Sandbox Code Playgroud)

<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);
});
Run Code Online (Sandbox Code Playgroud)

</body>
Run Code Online (Sandbox Code Playgroud)

Cyr*_*ian 7

它必须是这样的:

donuts.forEach(function(entry, i){
    console.log(donuts[i].key, donuts[i].value);
});
Run Code Online (Sandbox Code Playgroud)

或没有索引的更好:

donuts.forEach(function(donut){
    console.log(donut.key, donut.value);
});
Run Code Online (Sandbox Code Playgroud)