Обновите объект по идентификатору в массиве с помощью Lodash

Чтобы обновить объект по его идентификатору в массиве с помощью Lodash, вы можете рассмотреть следующие методы:

  1. findexи assign:

    • Используйте метод findex, чтобы найти индекс объекта с нужным идентификатором в массиве.
    • После получения индекса используйте метод assign, чтобы обновить объект новыми значениями.

    Пример:

    const newArray = _.cloneDeep(oldArray);
    const index = _.findIndex(newArray, { id: desiredId });
    if (index !== -1) {
     _.assign(newArray[index], { key1: value1, key2: value2 });
    }
  2. mapи isEqual:

    • Используйте метод mapдля перебора массива.
    • Сравните идентификатор каждого объекта с желаемым идентификатором, используя метод isEqual.
    • Если идентификаторы совпадают, вернуть новый объект с обновленными значениями; в противном случае верните исходный объект.

    Пример:

    const newArray = _.map(oldArray, (obj) => {
     if (_.isEqual(obj.id, desiredId)) {
       return { ...obj, key1: value1, key2: value2 };
     }
     return obj;
    });
  3. forEachи isEqual:

    • Используйте метод forEachдля перебора массива.
    • Сравните идентификатор каждого объекта с желаемым идентификатором, используя метод isEqual.
    • Если идентификаторы совпадают, обновите свойства объекта, добавив новые значения.

    Пример:

    _.forEach(oldArray, (obj) => {
     if (_.isEqual(obj.id, desiredId)) {
       _.assign(obj, { key1: value1, key2: value2 });
     }
    });