我有一个数组,在没有其他说明之前,我希望保持不变。如何防止其更改?
var orgArr = [[1,1], [2,2]];
function modArr(arr){
arr[0][0] = 5;
return arr;
}
modArr(orgArr);
console.log(orgArr); // It has changed
https://jsfiddle.net/50e6k7mc/
我尝试了一些不可变的东西(我把它加到了小提琴中)。
就像是
var orgArr = Immutable.List([[1,1],[2,2]])
然后使用
toArray()
。但是我无法使其正常工作。 最佳答案
在修改功能中,您需要先从Immutable进行转换,先进行修改,然后再转换回Immutable
arr=arr.toArray();
//.... modify arr
//....
arr= arr.fromJS(arr);
这是更新的代码:
https://jsfiddle.net/zvhp5k91/