js数组的复制

js数组的深浅复制

浅复制

var nums=[1,2,3,4]
var nums1=nums
console.log(nums,nums1)
nums1[0]=8
console.log(nums,nums1)
nums[0]=9
console.log(nums,nums1)

js数组的复制_第1张图片

由此我们可以看出,这种通过"="进行数组赋值的方法其实为浅复制


将原来数组的地址赋值给新数组,这样新旧数组指向的是同一个地址,当某一个发生改变时,这两个数组都会改变

深复制

通过遍历循环

var nums=[1,2,3,4]
var nums1=[]
for (var i=0;i<nums.length;i++){
    nums1[i]=nums[i]
}
nums[1]=88
nums1[1]=99
console.log(nums,nums1)

js数组的复制_第2张图片

通过扩展运算符

var nums=[1,2,3,4]
var nums1=[...nums]
nums[1]=88
nums1[1]=99
console.log(nums,nums1)

js数组的复制_第3张图片

通过concat方法

var nums=[1,2,3,4]
var nums1=nums.concat()
nums1[0]=99
nums[0]=88
console.log(nums,nums1)

js数组的复制_第4张图片

你可能感兴趣的:(#,JS,javascript,前端)