已知let str = 'a.b.c.d.e'(长度不确定),值为3,生成固定格式json对象,如let str = 'a.b.c.d.e', let value = 3
生成固定格式json对象
{
a:{
b:{
c:{
d: {
e: 3
}
}
}
}
}
已知let str = 'a.b.c.d.e'(长度不确定),值为3,生成固定格式json对象,如let str = 'a.b.c.d.e', let value = 3
生成固定格式json对象
{
a:{
b:{
c:{
d: {
e: 3
}
}
}
}
}
可以用 reduce
处理。
function strConvert(str, value) {
return str.split(".").reverse().reduce((p, n) => {
return p ? p = {[n] : p} : p = {[n]: value};
}, null)
}
let keys = str.split('.')
let tmp = result = {}
let end = keys.length - 1
keys.forEach((key, idx) => {
tmp = tmp[key] = idx === end ? value : {}
})
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
用 Lodash 一句搞定