我有一个对象数组。我想通过某个领域找到,然后改变它:
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; } });