在数组内改变对象时类似的“返回”值



我从来没有深入了解过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

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

最新更新