dicem
@dicem

Как отфильтровать объект по ключам?

Всем привет, имеется массив со строками:
const keys = ['addr', 'name', 'status']

Также имеется массив объектов типа:
const arr = [
  {
    addr: "vrn"
    name: null
    id: 2
    num: "1"
    status: false
  }
]


Задача стоит в том, чтобы получить массив объектов, в котором были бы свойства только с ключами из первого массива, т.е.
[
  {
    addr: "vrn"
    name: null
    status: false
  }
]


Буду рад любой помощи
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr.map(n => Object.fromEntries(keys.map(k => [ k, n[k] ])))

Если в элементах arr присутствуют не все keys, и в элементах результирующего массива изначально отсутствующие появится не должны, тогда

arr.map(n => Object.fromEntries(Object.entries(n).filter(m => keys.includes(m[0]))))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
WblCHA
@WblCHA
По мне так тут редьюсь больше напрашивается.
arr.map((obj) => keys.reduce((acc, key) => {
    acc[key] = obj[key];
    return acc;
  }, {}));
Ответ написан
Ваш ответ на вопрос

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

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