Задать вопрос
@Nivaech

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

Есть два объекта
const obj1 = {152: true, 153: true, 154: true;} 
const obj2 = {152: true, 153: true, 154: true, 2553: true, 2554: true, 2555: true}


Нужно проверить, есть ли в obj2 ключи из obj1 , и если есть - удалить их, чтобы в итоге было так:
const obj2 = {2553: true, 2554: true, 2555: true}

Номерные ключи меняются динамически (это айди элементов), поэтому привязываться к номеру нельзя. Как это можно сделать?
  • Вопрос задан
  • 939 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Удаляем свойства существующего объекта:

for (const n of Object.keys(obj1)) {
  delete obj2[n];
}

Собираем новый объект без ненужных свойств:

const newObj2 = Object.fromEntries(Object
  .entries(obj2)
  .filter(n => !obj1.hasOwnProperty(n[0]))
);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
kocherman
@kocherman
const obj1 = {152: true, 153: true, 154: true}; 
const obj2 = {152: true, 153: true, 154: true, 2553: true, 2554: true, 2555: true};
const obj1keys= [...Object.keys(obj1)];
const obj2keys = [...Object.keys(obj2)];
const obj2keyFilter = obj2keys.filter(key=>obj1keys.includes(key));
obj2keyFilter.forEach(key => delete obj2[key]);
console.log(obj2);
Ответ написан
Комментировать
askhat
@askhat
Immutable
Object.entries(obj2).reduce((acc, [k,v]) => obj1.hasOwnProperty(k) ? acc : ({ ...acc, [k]: v }), {})
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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