JavaScript зацикливается на n-мерном массиве - PullRequest
0 голосов
/ 24 октября 2018

Я не настолько опытен в javascript, поэтому прошу небольшой помощи.

У меня есть следующее представление массива данных:

[name, obj1[name, type, obj2[name, type, obj3[name, type]]], obj4[name, type]]

Каждый объект имеет свойства как имя итип.

Первое имя - это имя основного объекта.После этого, если у объекта есть другой объект внутри, он открывает новый массив для свойств этого объекта и потенциальных других объектов.

Как я могу рекурсивно пройти через это и показать этот массив следующим образом:

name(This can be left just as "name")
   name(of obj1)
   type(of obj1)
      name(of obj2)
      type(of obj2)
         name(of obj3)
         type(of obj3)
   name(of obj4)
   type(of obj4)

1 Ответ

0 голосов
/ 24 октября 2018

Надеюсь, последний пример в этом ответе поможет вам решить вашу проблему. Цикл по дереву с рекурсивной функцией

var data = ['name1', 
  ['name2', 'type2', 
    ['name2.1', 'type2.1', 
      ['name2.1.1', 'type2.1.1']
    ]
  ], 
  ['name3', 'type3']
];

function eachRecursive(obj) {
  for (var k in obj) {
    if (typeof obj[k] == "object" && obj[k] !== null) {
      eachRecursive(obj[k]);
    }
    else {
      console.log(obj[k]); // here you will see in console all items from your array
      }
    }
}

eachRecursive(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...