Добрый вечер, прошу помощи!
Есть линейный массив:
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"},
]
}]
}]
Спасибо!!!
Вот так:
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);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей