@jeruthadam
Я крут

Как выбрать из объекта указанные свойства и создать новый объект?

Есть объект и красивый one-liner:

const obj = {
  id: 7123879123,
  username: 'Vasya',
  email: 'qqq@qqq.com',
  age: 66,
  stuff: {
    a: 'a',
    b: 'b',
  },
};

const picked = (({ username, age, stuff }) => ({ username, age, stuff }))(obj);
console.log(picked);


Хочется сделать его реюзабельным, функцией. Для этого надо использовать его в таком виде, или подобном:

picked(obj, ['username', 'age', 'stuff'])

Как применить, чтобы аргументы передавались динамически?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const pick = (obj, keys) => keys.reduce((acc, n) => (acc[n] = obj[n], acc), {});

const newObj = pick(obj, [ 'username', 'age' ]);

или

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

const newObj = pick(obj, 'username', 'age');
Ответ написан
Комментировать
rockon404
@rockon404
Frontend Developer
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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