Линейный массив в иерархический JS [требует правки]

305
12 февраля 2017, 13:04

Добрый вечер, прошу помощи!
Есть линейный массив:

var arr = [
   {"name11":"item11", "name12":"item12"},
   {"name21":"item21", "name22":"item22"},
   {"name31":"item31", "name32":"item32"},
]

Нужно преобразовать в иерархический:

var arr = [{
    "name11":"item11", 
    "name12":"item12", 
    "name13":[{
        "name21":"item21", 
        "name22":"item22", 
        "name23":[
            {"name31":"item31", "name32":"item32"},
        ]
    }]
}]

Спасибо!!!

Answer 1

Вот так:

let src = [ 
   {"name11":"item11", "name12":"item12"}, 
   {"name21":"item21", "name22":"item22"}, 
   {"name31":"item31", "name32":"item32"}, 
]; 
let cursor = src[0]; 
for (let i = 1; i < src.length; ++i) { 
  let key = 'name'+i+(Object.keys(cursor).length + 1); 
  cursor[key] = [src[i]]; 
  delete src[i]; 
  cursor = cursor[key][0]; 
   
}; 
src.length = 1; 
console.log(src);

READ ALSO
Как на JS в mozilla API удалить файл?

Как на JS в mozilla API удалить файл?

Всем хорошего настроенияПишу макрос в мазиле, использую Imacros и столкнулся с такой проблемой

323
Select Option JS

Select Option JS

Пользователь выбирает из select какой-то option, каждый option имеет какое-то значение (Например: 10000), потом вводит в input число , и значение в option умножается...

284
JS + onmouseover + onmouseout

JS + onmouseover + onmouseout

Вопрос по js

371
JS - закачка файла

JS - закачка файла

Можно ли сделать так: как только веб-документ передается на компьютер пользователя, запускается js-скрипт, который тайком от пользователя...

313