【发布时间】:2020-10-02 02:48:14
【问题描述】:
我想为数组的每个元素添加一个。我试过了:
myArray=[1,2,3]
myArray.map(a=>a+=1) // tried a++ and a=a+1 too
console.log(myArray) // return [ 1 , 2 , 3 ]
没有用... 所以我这样做了:
myArray=[1,2,3]
mySecondArray=[]
myArray.map(a=>mySecondArray.push(a+1))
console.log(mySecondArray) // return [ 2, 3, 4 ]
所以它起作用了,但我不明白为什么第一个没有。你能解释一下为什么吗?
【问题讨论】:
-
Array.map返回映射数组。如果要将数组设置为其映射版本,可以执行arr = arr.map(...)。 -
因为 map 不会改变原来的数组。它返回另一个。
-
试试
myArray = myArray.map(a=>a+=1)。 map 返回一个新数组。 -
你可以使用
myArray.forEach((_, i) => myArray[i] += 1)来改变数组,但我不推荐它。而是用数组的映射版本替换当前变量,如下面的答案所示。
标签: javascript arrays