Преобразование массива в измененный объект
let a = ["CBSE/X-White","HOS/A/A1","FoodHOS/S1","CBSE/X-Green","HOS/A/A2","FoodHOS/S1","CBSE/IX-White","HOS/B/B1","FoodHOS/S1","TRP/T1"]
Я пытаюсь преобразовать вышеописанное значение "ля" ниже объекта мы можем наблюдать, что это были также уникальные значения.
I вывод должен быть таким после преобразования
{ "CBSE":[ "X-WHITE", "X-Green", "IX-White" ], "HOS":{ "A":[ "A1", "A2" ], "B":[ "B1" ] }, "FoodHOS":[ "S1", "S2" ], "TRP":[ "T1" ] }
Что я уже пробовал:
Я обращен в веру. "ля" в приведенной ниже форме с этим кодом
const munge = a => a.reduce((res, e) => { e = e.split("/"); let a = {}; let previousKey = e.shift(); res[previousKey] = a; let root = res; while (e.length) { const newKey = e.shift(); if(e.length == 0){ let b = []; b.push(newKey); root[previousKey] = b; } else a[newKey] = {}; if (e.length) { root = a; a= a[newKey]; } previousKey = newKey; } return res; }, {}); console.log(JSON.stringify(munge(a))); //-------------------------------------------------------------- //What i got the result is below { "CBSE":[ "IX-White" ], "HOS":{ "B":[ "B1" ] }, "FoodHOS":[ "S1" ], "TRP":[ "T1" ] }
Я думаю, что получил все последние значения
Кто-нибудь может мне помочь ?