@Swaer

Как работать с массивом в котором есть объект и вложенный массив?

let user = [[5,12,2,22,'5,23'],
   {
  name:'abc',
   cost:'5',
   numbers:[1,5,33],
   count:{
     props:4,
     area:7
   }
}]


Как из этого массива, создать новый массив, и чтобы в нем были значения из массива user, что-то типа такого массива должно получиться res = [5,12,2,22,'5,23',cost,'5',numbers,1,5,33,count,props,4,area,7]; и при этом не менять массив user

Я это делал через проверки, создал новый массив и в него добавил всё что является обэектом, потом из этого массива удалил через arra.isArray(), удалил вложенный массив и добавил его в другой массив, а с ассоциативный массивом я работал через двойной цикл for in и вытаскивал эти значения и ключи в другйо массив, правильный ли это метод работы со вложенным объектом? Или можно было сделать всё проще?
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как из этого массива, создать новый массив, и чтобы в нем были значения из массива user, что-то типа такого массива должно получиться res = [5,12,2,22,'5,23',cost,'5',numbers,1,5,33,count,props,4,area,7];

В смысле - хотите, чтобы все элементы массивов и ключи/значения объектов, включая вложенные, оказались развёрнуты в одномерный массив? Ну, так можно:

const toArray = val =>
  val instanceof Object
    ? [].concat(...(val instanceof Array
        ? val
        : Object.entries(val)
      ).map(toArray))
    : [ val ];


const res = toArray(user);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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