改变数组内的对象时的类似`return`值

时间:2017-06-20 15:33:17

标签: javascript arrays function object return

在我玩一些代码并遇到这个好的捕获之前,我从来没有过return。{ var x = [{a:2}, {a:4}, {b:4}]
当我在对象中改变一些值时,我发现3种不同的return的响应相同。我知道它为什么这样做但不是非常低的机器级别。任何人都可以解释为什么这3个return返回相同的东西,当我应该小心这个?

x.forEach((elem) => {
  if (elem.a === 2) {
    elem.a = 4
  }
})

x.forEach((elem) => {
  if (elem.a === 2) {
    elem.a = 4
    return elem
  }
})

x.forEach((elem) => {
  if (elem.a === 2) {
    elem.a = 4
  }
  return elem
})

  => x is always [{a: 4}, {a: 4}, {b: 4}]

我感觉这是由于forEach但不确定。感谢阅读:D

1 个答案:

答案 0 :(得分:0)

这很简单。第一个在操作结束时不返回任何内容。它只是更改值并返回void。第二个返回更改的数组项,第三个也返回最后更改的值,但也是'else'的情况。