【发布时间】:2018-01-09 11:00:45
【问题描述】:
这里是有问题的代码:
const array = [
1, 2, 3
]
array.map(item => {
item = item + 1
})
console.log(array)
我认为map 方法中的item(第一个)参数是对数组中原始项的引用,并且直接对其进行变异会改变第一个数组的内容......是不是真的吗?
【问题讨论】:
-
如果你想mutate数组中的每一项,你可以使用'forEach',然后在每个元素上调用一个mutating方法。当您执行
item = item+1时,无论您调用.map还是.forEach,您都不会改变item,因为您只是重新分配了一个局部变量。
标签: javascript arrays ecmascript-6