У меня есть данные в следующем формате:
Элемент 1: «Европа> Германия> Берлин> Главный офис» (Объект)
Элемент 2: «Америка> Объединенная Штаты> Штаб-квартира "(Объект)
Элемент 3:" Америка> Соединенные Штаты> Нью-Йорк> Главный офис "(Объект)
Элемент 4:" Америка> Соединенные Штаты> Нью-Йорк> Дополнительное отделение " (Объект)
Элемент 5: «Великобритания> Англия> Лондон> Главный офис» (Объект)
Сначала я пытаюсь разбить массив на основе символа «>» и создайте дерево всех элементов в следующем формате (vanilla js / es6):
"Europe": {
"Germany": {
"Berlin": {
"Main Office": "Object"
}
}
},
Моя попытка:
Array.prototype.slice.call(elements).forEach((el) => {
let
stringIHave = el.name, // "Europe > Germany > Berlin > Main Office"
keywordsArr = stringIHave.split( " > " ),
arrayTree = new Array();
Array.prototype.slice.call(keywordsArr).forEach((subEl) => {
//arrayTree.push(el.toString()); // Result: {"Europe", "Germany", "Berlin", "Main Office" }
// What I'm Seeking:
// "Europe": { "Germany": { "Berlin": { "Main Office": "Object" } } },
});
});
После того как данные отформатированы, нам нужно найти объединение (или один отдельный массив) всех массивов, как показано ниже:
[
"Europe": {
"Germany": {
"Berlin": {
"Main Office": "Object"
}
}
},
"America": {
"United States": {
"Headquarters",
"NY": {
"Main Office": "Object",
"Sub Office": "Object"
}
}
},
"United Kingdom": {
"England": {
"London": {
"Main Office": "Object"
}
}
}
]
Я пытался использовать Array.from(new Set(masterArray))
для нахождения объединения всех массивов, но без кубиков!