我有一个对象数组。我想通过某个字段查找,然后更改它:
var item = {...}
var items = [{id:2}, {id:2}, {id:2}];
var foundItem = items.find(x => x.id == item.id);
foundItem = item;
我想让它改变原来的对象。如何? (我不在乎它是否也会在 Lodash 中。)
最佳答案
您可以使用 findIndex在对象数组中查找索引并根据需要替换它:
var item = {...}
var items = [{id:2}, {id:2}, {id:2}];
var foundIndex = items.findIndex(x => x.id == item.id);
items[foundIndex] = item;
这假定唯一 ID。如果您的 ID 重复(如您的示例所示),使用 forEach 可能会更好:
items.forEach((element, index) => {
if(element.id === item.id) {
items[index] = item;
}
});
关于javascript - 如何查找和更新对象数组中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35206125/