【问题标题】:How do you assign a value inside a forEach loop? [duplicate]如何在 forEach 循环中赋值? [复制]
【发布时间】:2017-03-06 15:12:24
【问题描述】:

我希望第一个 console.log 是 [0,10,20,30],第二个是 [0,100,20,30]:

var arr = [0,10,20,30]
console.log(arr)
arr.forEach(each)
console.log(arr)

function each(data,index) {
   if (index === 1) {
      data = 100 // This isn't assigned to arr[1]
   }
}

【问题讨论】:

  • arr[index] = 100。没有数组就不能分配给数组的索引。
  • 无论天气如何,它是 forEach 或任何函数,这在 javascript 中永远不会发生,因为它永远不会通过引用传递:stackoverflow.com/questions/13506398/…
  • forEach 不会进行内联更改。你必须使用地图来实现这一点。

标签: javascript arrays


【解决方案1】:

您正在为局部变量赋值。赋值给实际的索引,需要数组和索引,Array#forEach的回调API的参数二和三

var arr = [0,10,20,30]
console.log(arr)
arr.forEach(each)
console.log(arr)

function each(data,index, array) {
   if (index === 1) {
      array[index] = 100;
   }
}
.as-console-wrapper { max-height: 100% !important; top: 0; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多