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

Как правильно создать 2 новых объекта из одного существующего?

Есть объект, допустим
const obj = {
  a: 1,
  b: 2,
  c: 3,
  d: 4,
  e: 5,
  f: 6,
}


нужно, чтобы один объект был {a: 1, d: 4, e: 5, f: 6}
а другой с остальными полями. Как правильно сделать?

сделал так
const  {a, d, e, f, ...otherObj} = obj;
const anotherObj = {a, d, e, f};

чую есть более толковое решение.
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
О каких свойствах идёт речь: const keys = [ 'a', 'd', 'e', 'f' ];.

Собираем новые объекты:

const obj1 = {};
const obj2 = {};

for (const k in obj) {
  if (obj.hasOwnProperty(k)) {
    (keys.indexOf(k) > -1 ? obj2 : obj1)[k] = obj[k];
  }
}

или

const partition = (data, f) =>
  Array.prototype.reduce.call(
    data,
    (acc, n, i, a) => (
      acc[+!!f(n, i, a)].push(n),
      acc
    ),
    [ [], [] ]
  );

const [ obj1, obj2 ] = partition(
  Object.entries(obj),
  n => keys.includes(n[0])
).map(Object.fromEntries);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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