我试着写一个函数,但我没有实现它。这个函数是这样工作的
输入:changeSetting("a>b>c","hello")
之后,“设置”命名值从{}
更改为{"a":{"b":{"c":"hello"}}}
如果输入为changeSetting("a","hello")
,json变为{}
到{"a":"hello"}
我最后一次尝试的代码:
function changeSetting(name,val) {
if (name.includes(">")) {
name = name.split('>')
let json = {}
name.map((el,i)=>{
let last = ""
name.filter(el=>!name.slice(i+1).includes(el)).map(el=> {
if(last!="") {
json[el] = {}
}})
})
}
}
字符串
我们如何才能做到这一点?(优化不重要,但如果是对我有好处)
5条答案
按热度按时间fivyi3re1#
字符串
yws3nbqq2#
当你使用字符串时,你可以尝试像这样使用JSON:
字符串
juud5qan3#
有多种方法可以做到这一点,我已经注解了这个片段
字符串
wrrgggsh4#
你可以通过用String.prototype.split()在所有
>
上分割name
来创建一个数组,然后用Array.prototype.reduceRight()创建一个元素数组,对象初始值为{}
,并添加键值对,但在最后一个元素上,值应该是变量val
。代码:
字符串
g52tjvyc5#
字符串