@McThinker

Как удалить все ключи из объекта кроме этого?

var thisIsObject= {
   'Cow' : 'Moo',
   'Cat' : 'Meow',
   'Dog' : 'Bark'
};
let key = "Cow";
delete thisIsObject[!key]; 

console.log(thisIsObject);


Знаю только ключ Cow, как удалить остальные?
  • Вопрос задан
  • 1524 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Получаем список ключей, перебираем, кто не равен чему надо - удаляем:

Object.keys(obj).forEach(n => n !== key && delete obj[n]);

Конечно, было бы проще создавать новый объект с нужным ключом:

obj = { [key]: obj[key] };

Но вообще, почему надо ограничиваться лишь одним ключом?

Удаляем ключи существующего объекта кроме указанных:

const deleteKeys = (obj, except) =>
  Object.keys(obj).forEach(n => except.includes(n) || delete obj[n]);


const obj = { a: 1, b: 2, c: 3, d: 4 };
deleteKeys(obj, [ 'a' ]);
console.log(obj); // {a: 1}

Собираем копию объекта, где будут отсутствовать ключи кроме указанных:

const pick = (obj, keys) =>
  Object.fromEntries(keys.map(n => [ n, obj[n] ]));


const obj = { a: 1, b: 2, c: 3, d: 4 };
console.log(pick(obj, [ 'a', 'd' ])); // {a: 1, d: 4}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы