【问题标题】:how to apply forEach method on array object如何在数组对象上应用 forEach 方法
【发布时间】:2015-01-10 20:16:35
【问题描述】:

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

【问题讨论】:

  • 在该章的示例中,它创建了一个名为forEach() 的函数,但您没有这样做。 eloquentjavascript.net/05_higher_order.html
  • 我刚刚复制了代码,它应该可以工作
  • 那么您是否遵循并直接在其上方执行代码?中间只有一句话,所以这本书再写出同样的功能有点傻。

标签: javascript foreach


【解决方案1】:

forEachArray 方法不是全局函数

var numbers = [1, 2, 3, 4, 5],
    sum = 0;

numbers.forEach(function(number) {
  sum += number;
});

console.log(sum);

更新:

在你的情况下,你忘了复制 function declaration for forEach.

【讨论】:

    【解决方案2】:

    forEach 不是全局函数,您必须使用 Array.forEach 方法来循环遍历您的数组对象。

    【讨论】:

      【解决方案3】:

      你的 ForEach 方法错了。你必须给 forEach 一个回调函数,你可以给它三个参数,分别表示元素、它们的索引和数组本身。ForEach 方法是 Array.prototype 对象的方法。@ 987654321@这意味着它适用于数组对象本身。对象从其原型继承。

      如果我们有一个对象,比如说

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

      【讨论】:

        猜你喜欢
        • 2020-01-05
        • 1970-01-01
        • 2012-02-27
        • 2022-11-13
        • 2021-11-09
        • 1970-01-01
        • 2017-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多