数组1给数组2赋值后,用unshift更改数组2后,数组1也增加了同样的元素?
发布于 6 年前 作者 naqian 6335 次浏览 来自 问答

代码如下:

    var shops2=[1,2,3]

    var shops1=shops2

    shops1.unshift("所有门店")

    console.log("shops2:",shops2,"shops1:",shops1)

输出结果如下:

shops2: (4) ["所有门店", 1, 2, 3],shops1: (4) ["所有门店", 1, 2, 3]

2 回复

数组是引用类型 你的shops2 shops1指向的是同一块内存,所以该一个另一个也生效,你用Object.assign()或者是json 拷贝一份,再进行操作应该就可以了

var shops2=[1,2,3]

    var shops1=[1,2,3]

    shops1.unshift("所有门店")

    console.log("shops2:",shops2,"shops1:",shops1)

var shops2=[1,2,3]

    var shops1=JSON.parse(JSON.stringify(shops2))

    shops1.unshift("所有门店")

    console.log("shops2:",shops2,"shops1:",shops1)


这样呢

回到顶部