【发布时间】:2018-11-26 18:10:20
【问题描述】:
我一直在建立之前的帖子
building a menu list object recursively in javascript
我用它来了解更多关于 js 中的数组和对象以及它的输出
{
social: {
swipes: {
women: null
}
}
}
但现在我想要一种更实用的方式,这样可以更容易地以类似的格式进行遍历
{
social: {
children: {
swipes: {
children: {
women: null
}
}
}
}
}
带有子键。
如何修改代码来做到这一点?
let input = ['/social/swipes/women', '/social/swipes/men', '/upgrade/premium'];
let output = input.reduce((o, e) => {
let z = e.split("/").filter(d => d);
z.reduce((k,v,i) => {
if (z.length - 1 !== i) {
if (k.hasOwnProperty(v)) {
k[v] = k[v];
} else {
k[v] = { children: {}};
}
} else {
k[v] = null;
}
return k[v]
}, o)
return o;
}, {})
console.log(output);
【问题讨论】:
标签: javascript