遍历修改数组元素为字符串的数组时要注意的坑
直接上结论:
遍历修改数组时,如果数组的项是字符串,如果要修改数组的项,不能采用item的方式直接修改,应该采取下标的方式修改数组的项.
例如:

var arr=["one", "two", "three"];
arr.forEach((item,index)=>{
item="four";
})
console.log(arr);
结果必然是数组未改变,仍然是arry=["one", "two", "three"];,
解决办法: 采用数组下标

var arry=["one", "two", "three"];
arr.forEach((item,index)=>{
arr [ index ] = "four";
})
console.log(arr);
原理: 字符串在js中是不可变的,在本例中遍历数组时,item代表的是字符串本身,而arr[index]代表的时数组的那一项(可以把那一项理解成一个指针),直接对item赋值数组是无接收到的,因为字符串在js中是不可变的,但是对指针arr[index]赋值,数组是能接收到的
但是.如果数组的项是一个可变的数据类型,直接对item操作,是可以实现改变数组的

浙公网安备 33010602011771号