首页 > 解决方案 > 自定义数组到自定义对象?

问题描述

我想将此数组转换为对象,如下所示。

let a = ["CBSE/X","HOS/A/A1","FOOD/S"]

结果应该是这样的:

{  
   CBSE : ["X"],
   HOS  : [{ A : ["A1"] }],
   FOOD : ["S"],
}

我试过的是

.split("/")

试图拆分每个对象等等,但无法向前移动。

标签: javascripttypescript

解决方案


一种方法是使用split/ reduceRightinside reduce

let a = ["CBSE/X","HOS/A/A1","FOOD/S"]

let r = a.reduce((a, c) => 
    Object.assign(a, 
      c.split('/') 
       .reduceRight((a, c) => a ? [{[c]: a}] : [c], null)[0]
    )
,{})


console.log(r)


推荐阅读