使用已修改的数组更新对象属性值

时间:2016-07-22 20:06:48

标签: javascript jquery arrays

我知道我可以使用$.extend合并到对象。如果我想将数组合并/更新到现有数组中,该数组是某个对象属性之一的值,该怎么办?

Obj = {id: 63, region: "place", shops: Array[246]}

$.extend(true, Obj.traits, amendedShopsArray) // Doesnt work

返回Obj = {id: 63, region: "place", amendedShopsArray: Array[246]

2 个答案:

答案 0 :(得分:1)

您可以使用相同的数据向对象添加第二个键,然后delete您不想要的那个:



// shops mocked for simplicity
var obj = {id: 63, region: 'place', shops: [1, 2, 3]};

obj.amendedShopsArray = obj.shops;
delete obj.shops;

console.log(obj);




答案 1 :(得分:0)

由于$.extend不会合并数组,因此您可以使用Array.concat,如下所示:

var newArray = [.....];
Obj.shops = Obj.shops.concat(newArray);

如果要更改属性名称:

var newArray = [.....];
Obj.amendedShopsArray = Obj.shops.concat(newArray);
delete Obj.shops;