@maksmaksimovich

Как из объекта сделать массив?

Приходит объект вида
{0: { name: 'Петя', age: 15 }, 1: { name: 'Вася', age: 21}}

Нужно, чтобы получилось так:
[{ name: 'Петя', age: 15 }, { name: 'Вася', age: 21}]

Но так же в функцию могут приходить нормальные объекты вида { name: 'Петя', age: 15 } , с ними ничего делать не нужно.
Как сделать из первого объекта массив с объектами, а нормальные объекты не трогать?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
@Interface
Проблема в том, что объект первого вида - тоже "нормальный" объект.

Если в первом случае все ключи должны быть строковыми записями чисел, то можно так, например:
function normalizeObject(obj) {
    if (Object.keys(obj).every(key => Number(key).toString() === key)) {
        return Object.assign([], obj);
    }
    return obj;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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