我有一个javascript对象数组,如下所示:
var food = [
{id: 1, name: 'Apples', owned: true },
{id: 2, name: 'Oranges', owned: false },
{id: 3, name: 'Bananas', owned: true }
];
Run Code Online (Sandbox Code Playgroud)
然后我收到另一个包含以下数据的数组:
var newFood = [
{id: 1, name: 'Peas'},
{id: 2, name: 'Oranges'},
{id: 3, name: 'Bananas'},
{id: 4, name: 'Grapefruits'}
];
Run Code Online (Sandbox Code Playgroud)
我怎样才能更新以前的food数组新的信息newFeed,而不会覆盖原有的owned属性,同时增加了owned: false对任何新的对象?
请记住,这是简单的javascript,而不是jQuery.
您可能想要通过id索引食物,因此将食物作为对象而不是数组:
var food = {
1: {name: "Apples", owned: true},
//...
}
Run Code Online (Sandbox Code Playgroud)
然后迭代newFood并适当更新字段.
我认为你可以使用underscore.js来解决这个问题。
var arrayObj = [
{Name:'John',LastName:'Smith'},
{Name:'Peter',LastName:'Jordan'},
{Name:'Mike',LastName:'Tyson'}
];
var element = _.findWhere(arrayObj, { Name: 'Mike' });
element.Name="SuperMike";
console.log(arrayObj);
Run Code Online (Sandbox Code Playgroud)