它来自一本名为eloquent JavaScript的书,但我得到了未被捕获的参考错误,无法弄清问题是什么。我是编程新手,有人建议我读这本书。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js</title>
</head>
<body>
<script>
var numbers = [1, 2, 3, 4, 5],
sum = 0;
forEach(numbers, function(number) {
sum += number;
});
console.log(sum);
</script>
</body>
</html>
答案 0 :(得分:3)
forEach
是Array
方法而不是全局函数
var numbers = [1, 2, 3, 4, 5],
sum = 0;
numbers.forEach(function(number) {
sum += number;
});
console.log(sum);
更新:
在您的情况下,您忘记了复制function declaration for forEach.
答案 1 :(得分:1)
forEach不是全局函数,您必须使用Array.forEach方法遍历数组对象。
答案 2 :(得分:0)
你的ForEach方法错了。你必须为forEach提供一个回调函数,你可以给它三个参数来指示元素,它们的索引和数组本身.ForEach方法是一个Array.prototype对象的方法。{ {3}}这意味着它适用于数组对象本身。对象继承自其原型。
如果我们有一个对象,比如说
function Obj(){};
和添加到该目标原型的方法
Obj.protoype.add=function(){};
如果我们创建一个新实例,要获取其原型方法的add方法,我们必须调用该对象的名称然后使用点符号来执行此方法
var newObj=new Obj();
newObj.add();
在你的情况下为你的数字数组获取foreach方法你必须这样做。这适用于其他数组方法,如map,every,some等。
var numbers = [1, 2, 3, 4, 5];
var sum = 0;
numbers.forEach(function(elements,index,array){
sum+=elements;
})
document.write(sum);