Чтобы обновить объект по его идентификатору в массиве с помощью Lodash, вы можете рассмотреть следующие методы:
-
findexиassign:- Используйте метод
findex, чтобы найти индекс объекта с нужным идентификатором в массиве. - После получения индекса используйте метод
assign, чтобы обновить объект новыми значениями.
Пример:
const newArray = _.cloneDeep(oldArray); const index = _.findIndex(newArray, { id: desiredId }); if (index !== -1) { _.assign(newArray[index], { key1: value1, key2: value2 }); } - Используйте метод
-
mapиisEqual:- Используйте метод
mapдля перебора массива. - Сравните идентификатор каждого объекта с желаемым идентификатором, используя метод
isEqual. - Если идентификаторы совпадают, вернуть новый объект с обновленными значениями; в противном случае верните исходный объект.
Пример:
const newArray = _.map(oldArray, (obj) => { if (_.isEqual(obj.id, desiredId)) { return { ...obj, key1: value1, key2: value2 }; } return obj; }); - Используйте метод
-
forEachиisEqual:- Используйте метод
forEachдля перебора массива. - Сравните идентификатор каждого объекта с желаемым идентификатором, используя метод
isEqual. - Если идентификаторы совпадают, обновите свойства объекта, добавив новые значения.
Пример:
_.forEach(oldArray, (obj) => { if (_.isEqual(obj.id, desiredId)) { _.assign(obj, { key1: value1, key2: value2 }); } }); - Используйте метод