尝试按值而非引用复制对象数组
trying to copy array of objects by value not reference
嗨,我知道以前的帖子已经涵盖了这个主题,但我仍然没有得到我需要的结果。我试图复制一个对象数组,这将是它自己的原始版本,并且在进行更改时不会影响其他对象的数据。到目前为止,当我使用slice((时,复制int数组可以很好地工作,但不适用于对象的矢量。在另一篇文章中提到,对象向量上的slice((仍然会引用对象,所以有没有一种方法可以只通过值来实现???谢谢
property var array: new Array
Rectangle{id: ob1; width:50; height:50; color: "red"; property int num: 1}
Rectangle{id: ob2; width:50; height:50; x: 50; color: "blue"; property int num: 2}
Rectangle{id: ob3; width:50; height:50; x: 100; color: "green"; property int num: 3}
Component.onCompleted: {
array.push(ob1)
array.push(ob2)
array.push(ob3)
var array2 = array //slice() will not work here
array[1].num = 1111 //change made to first array NOT intended for second
for(var i = 0; i < array.length; i++){
console.log(array2[i].num) //print out from second array still shows changes to first...
}
}
您可以这样做:
var copyOfValues = listOfValues.map(function (value) {
return $.extend({}, value);
});
您确定array.slice(0(不能工作吗?如果不尝试这个:
var array2 = JSON.parse(JSON.stringify(array));
相关文章:
- 在javascript/angular中创建播放列表(按值复制数组,但按引用设置嵌套对象)
- Javascript函数 - 通过引用复制,但这里发生了什么
- 复制不带属性的函数引用
- 引用被分配给哪些类型,而不是在Javascript中被复制
- 在Javascript中使用新的引用创建一个新对象 - 不要复制或克隆 -
- 具有嵌套数组的绝对无引用的数组复制
- Angular/Javascript:按值复制一个简单的数字而不引用
- Angular.copy() 不是深度复制引用的数组
- 对于 JavaScript 的继承,引用或复制父级的原型是否更好
- 如何通过引用将JavaScript对象复制到新变量NOT
- 我应该从bower_components复制文件吗?在那里引用它们
- 多次循环引用对象,将其属性复制到Javascript/Angularjs中的其他对象
- Object.创建数组和对象属性的复制引用
- 通过值或引用复制/传递js中的函数
- 当通过引用而不是按值复制 JavaScript 值时,是否有任何经验法则
- Javascript:如何正确复制引用
- 通过引用复制对象是否有实际用途
- 自动复制index.html中的引用到karma.conf.js中
- 数组/对象按值复制/按引用复制
- 尝试按值而非引用复制对象数组