对象数组赋值给另一个数组,在操作新数组,怎么使原数组不变

var c = self.threeData1;                                        var threeData2 = c.concat();
                                        
                                         threeData2.forEach(function(iten){
                                            iten.price = "---"
                                         })                                       console.log("c",c)                                       console.log("threeData2",threeData2)


慕婉清6462132
浏览 2656回答 1
1回答

阿波罗的战车

原数组treeData1中的元素都是object,也就是引用类型。concat方法是合并两个数组,类似将object1赋值给object2,此时对object1的属性a进行修改,此时object2的a属性与object1的a属性值相同。所以修改了第一个数组中某个元素的属性,新数组中对应元素属性也被修改。总结起来就是值类型数据和引用类型数据的拷贝/克隆问题。引用类型数据赋值时,是赋值此对象的指针,而并不是存储在堆中的对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript