@lexstile

Как из свойств исходного объекта сделать массив объектов со значениями полей первого?

Есть объект:
const obj = {
  field1: 1000,
  field2: 2000,
  field3: {
    field4: 'test4',
    field5: 'test5',
  },
};

Необходимо получить:
// [{ value: 1000 }, { value: 2000 }, { value: 'test4' }, { value: 'test5' }]

Пробовал так (не довел):
const getValues = (params) => {
  const array = [];

// keys, потому что нужно делать доп. проверку на ключ
  Object.keys(params).reduce((acc, value) => {
    if (typeof params[value] === 'object') {
      getValues(params[value]);
    }

    return array.push({ value: params[value] });
  }, []);

  return array;
};

Нужна рекурсия, т. к. мы не знаем вложенность объекта.
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const getValues = value =>
  value instanceof Object
    ? Object.values(value).flatMap(getValues)
    : { value };
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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