我有一个如下所示的数组 -
var x = [{
name: "Mr.X",
age: 22
},{
name: "Mr.Y",
age: 26
},{
name: "Mr.Z",
age: 24
},];
我想复制第二项并将其作为第一个元素。为了避免任何混淆,我希望得到的数组如下所示 -
var x = [{
name: "Mr.YD",
age: 19
},{
name: "Mr.X",
age: 22
},{
name: "Mr.Y",
age: 26
},{
name: "Mr.Z",
age: 24
},];
我尝试过的内容 - 我提取了第二项,并更改了name
和age
属性。但它也在改变第二项。我知道这是因为我们正在改变参考。但我不知道如何提取/复制项目并仅更改其值。
答案 0 :(得分:1)
var x = [{
name: "Mr.X",
age: 22
},{
name: "Mr.Y",
age: 26
},{
name: "Mr.Z",
age: 24
},];
console.log(x);
var y = JSON.parse(JSON.stringify(x));
y.unshift({
name: "Mr.XD",
age: 19
});
console.log(y);
答案 1 :(得分:1)
如果您正在寻找对象的克隆 有多种方式
jQuery Extend:
// Shallow copy
var newObject = jQuery.extend({}, oldObject);
// Deep copy
var newObject = jQuery.extend(true, {}, oldObject);
JSON Stringify
var newObject = JSON.parse(JSON.stringify(oldObject))
或者: 通过递归迭代对象道具来编写克隆方法
然后使用标准数组API附加到数组