收藏
回答

数组1给数组2赋值后,用unshift更改数组2后,数组1也增加了同样的元素?

代码如下:

    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 个回答

  • M小
    M小
    2021-06-12

    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)


    这样呢


    2021-06-12
    有用 1
    回复 1
    • 深圳夜奔
      深圳夜奔
      2021-06-12
      按您的方法解决了,感谢感谢
      2021-06-12
      回复
  • Mr Yang
    Mr Yang
    2021-06-12

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

    2021-06-12
    有用 1
    回复 1
    • 深圳夜奔
      深圳夜奔
      2021-06-12
      多谢指点,用Object.assign也解决了这个问题,感谢感谢
      2021-06-12
      回复
登录 后发表内容