Использование функции для удаления свойств объекта по имени ключа - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь выяснить, как я смогу создать функцию, которая удаляла бы свойство объекта на основе его имени ключа

const objects = [
  { name: 'Luke' },
  { foo: 'bar' },
  { name: 'Yoda' },
  { name: 'Leia' }
]

Вместо того, чтобы просто delete.foo есть функция, которую я мог бы создать, что бы удалить любое свойство, которое не имеет ключ 'name'?

Ответы [ 4 ]

0 голосов
/ 01 мая 2020

Вы можете использовать Array.prototype.filter и объект * hasOwnProperty для решения этой проблемы.

const objects = [
  { name: 'Luke' },
  { foo: 'bar' },
  { name: 'Yoda' },
  { name: 'Leia' }
];

const res = objects.filter(item => item.hasOwnProperty('name'));

console.log(res);
.as-console-wrapper{min-height: 100%!important; top: 0;}
0 голосов
/ 01 мая 2020

Вы можете фильтровать массив и отображать только объекты со свойством name.

const
    objects = [{ name: 'Luke' }, { foo: 'bar' }, { name: 'Yoda' }, { name: 'Leia' }],
    result = objects
        .filter(o => 'name' in o)
        .map(({ name }) => ({ name }));

console.log(result);
0 голосов
/ 01 мая 2020

Объект имеет hasOwnProperty метод, который вы можете использовать для фильтрации элементов вашего массива

Solution

objects.filter(obj => obj.hasOwnProperty('name'))
0 голосов
/ 01 мая 2020

вы можете отфильтровать его;

objects.filter(object => object.name != 'Leia')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...