为了账号安全,请及时绑定邮箱和手机立即绑定

问个javascript数组中对象内存地址引用的问题

问个javascript数组中对象内存地址引用的问题

子衿沉夜 2019-03-15 18:15:18
把a赋值给blet a = [{  m: 1}]let b = [...a]b[0].m = 2console.log(a)console.log(b)结果:[ { m: 2 } ] // a[ { m: 2 } ] // b改动b里某个元素的属性时,a对应元素里的m属性也跟着变了那么,怎么能让数组b里的对象重新指向新的内存地址呢?期望结果:[ { m: 1 } ] // a[ { m: 2 } ] // b
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

拷贝对象,而不是引用对象,assign与...一样都是浅拷贝


let b = a.map(item=>{

    return Object.assign({},item)

})


查看完整回答
反对 回复 2019-04-10
?
千万里不及你

TA贡献1784条经验 获得超9个赞

let a = [{

  m: 1

}]

let b = JSON.parse(JSON.stringify(a))

b[0].m = 2

console.log(JSON.stringify(a))

console.log(JSON.stringify(b))


查看完整回答
反对 回复 2019-04-10
  • 2 回答
  • 0 关注
  • 483 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信