收藏
回答

一个列表变量被setData赋值给两个列表变量后,其中一个列表元素改变,另一个列表也同步改变

框架类型 问题类型 操作系统 工具版本
小程序 Bug Windows v1.01.1911042

Page({

data: {

a:[],

b:[]

},

onLoad:function(options){

var c=[2,3]

this.setData({a:c,

b:c})

this.data.a[0]=3

console.log("a",this.data.a,"b",this.data.b)

},

})


此时控制台输出的结果是a为[3,3],b也为[3,3],但我只改变了a的值,b应该为[2,3]吧?

回答关注问题邀请回答
收藏

1 个回答

  • 子不语
    子不语
    2019-11-05

    又到了喜闻乐见的数组内存指针问题了,建议了解一下深度克隆

    2019-11-05
    有用 2
    回复 11
    • 0a统帅
      0a统帅
      2019-11-05
      能详细一点不,我小白一枚☺☺
      2019-11-05
      1
      回复
    • 子不语
      子不语
      2019-11-05回复0a统帅
      百度,js 数组克隆
      2019-11-05
      1
      回复
    • 0a统帅
      0a统帅
      2019-11-05回复子不语
      谢谢,第一次碰到,搞了我几个小时
      2019-11-05
      1
      回复
    • 子不语
      子不语
      2019-11-05回复0a统帅
      没事
      2019-11-05
      1
      回复
    • YU,
      YU,
      2020-03-31回复0a统帅
      我也是遇到a给一个b数组赋值 数组b改变导致a也改变了 关键a 并没有setData啊页面也都渲染了
      2020-03-31
      1
      回复
    查看更多(6)
登录 后发表内容
问题标签