javascript - 如何查找和更新对象数组中的值?

标签 javascript arrays ecmascript-6 lodash

我有一个对象数组。我想通过某个字段查找,然后更改它:

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/

相关文章:

javascript - ReferenceError: "document"未定义

arrays - 我可以在 AS3 中操作多个类中的单个数组吗?

angular - Internet Explorer 11,ECMAScript 对象属性分配问题

c - 在数组上使用 malloc

javascript - 对象数组,按父对象分组

javascript - 将可迭代元素或不可迭代元素扩展为数组而不检查元素 .length

javascript - 用javascript调用jquery函数

javascript - 如何使用dojo工具包在本地保存json文件

javascript - 查找当前幻灯片 div 并添加类

php - 从Mysql表字段中提取数据并将其放入数组中