小编典典

如何在对象数组中查找和更新值?

all

我有一个对象数组。我想通过某个领域找到,然后改变它:

var item = {...}
var items = [{id:2}, {id:2}, {id:2}];

var foundItem = items.find(x => x.id == item.id);
foundItem = item;

我希望它改变原始对象。如何?(我不在乎它是否也会出现在 Lodash 中。)


阅读 83

收藏
2022-06-13

共1个答案

小编典典

您可以使用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;
    }
});
2022-06-13