var a = [1,2,3];
var b = a;
b[0] = 5;
console.log(a,b); // [5,2,3],[5,2,3]
像上面直接赋值的方式就是浅拷贝,但很多时候这并不是我们想要的结果,其实我们想要的是a数组不变,不是吗?
方法1:slice函数
对于array对象的slice函数,返回一个数组的一段。(仍为数组)
arrayObj.slice(start, [end])
var a = [1,2,3]
var b = a.slice(0)
b[0] = 5
console.log(a,b) // [1,2,3], [5,2,3]
方法二:concat方法
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var a = [1,2,3]
var b = a.concat()
b[0] = 5
console.log(a,b) // [1,2,3], [5,2,3]
荆轲刺秦王
网友评论