javascript - 自定义数组到自定义对象?
问题描述
我想将此数组转换为对象,如下所示。
let a = ["CBSE/X","HOS/A/A1","FOOD/S"]
结果应该是这样的:
{
CBSE : ["X"],
HOS : [{ A : ["A1"] }],
FOOD : ["S"],
}
我试过的是
.split("/")
试图拆分每个对象等等,但无法向前移动。
解决方案
一种方法是使用split
/ reduceRight
inside 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)
推荐阅读
- react-native - 获取会话 ID 时出现意外的保留字“等待”
- java - 获得正确的 CBOR 输出
- vba - Microsoft Word:如何在 VBA 中启用和禁用复选框?
- ios - 如何将`@Binding`重写为ViewModel
- c# - 合并相同类型的 xml 节点并在 C# 中显示两个结果
- javascript - 我们可以将 JavaScript 称为独立于平台的语言吗?
- firebase - IOS 上的 Flutter Firebase 动态链接不起作用:[Firebase/Analytics][I-ACS023001] Deep Link does not contain valid required params
- javascript - Vue - 将内联 css 样式传递给子组件
- c++ - 二进制搜索如何与字符串数组一起工作?
- sql-server - 使用 knex 在单个查询中更新多行数据 MsSQL