如何在数组对象上应用forEach方法

时间:2015-01-10 20:16:35

标签: javascript foreach

它来自一本名为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>

3 个答案:

答案 0 :(得分:3)

forEachArray方法而不是全局函数

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);