you_are_enot
@you_are_enot
Пограммист любитель

Как удалить ключ объекта зная его значение?

У меня есть объект
var obj = {
    key1: "value1",
    key2: "value1",
    key3: "value2",
    key4: "value3"
}


Нужно удалить все ключи с значением value1, чтобы получился объект
var obj = {
    key3: "value2",
    key4: "value3"
}
  • Вопрос задан
  • 3551 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Какое значение не нужно: const valueToDel = 'value1';

Удаляем:

for (const n of Object.entries(obj)) {
  if (n[1] === valueToDel) {
    delete obj[n[0]];
  }
}

Или, если на самом деле надо не удалять свойства из имеющегося объекта, а собрать новый:

const newObj = Object
  .entries(obj)
  .reduce((acc, [ k, v ]) => (v !== valueToDel && (acc[k] = v), acc), {});

// или

const newObj = Object.fromEntries(Object
  .entries(obj)
  .filter(n => n[1] !== valueToDel)
);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы