gpt4 book ai didi

javascript - 将字符串转换为嵌套的 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 12:40:27 24 4
gpt4 key购买 nike

我想知道如果没有 eval 这是否可行(我听说这是邪恶的)。

var myString = 'myObject.property.subproperty';

并将其转换为

var obj = {
myObject: {
property: {
subproperty: {}
}
}
};

在这里待了 2 个小时。

我不喜欢的val解决方案:

我可以用输入字符串做到这一点。

var myString = 'myObject.property.subproperty';
var nameTree = myString.split('.');
var evalString = '';
var myObj = {};
_.forEach(nameTree, function(value, key){

if (key == 0) {
evalString += 'myObj[' + value + '] = {};';
} else {
evalString += '[' + value + '] = {};';
}
});

eval(evalString);

我得到:

console.log(myObj);

// {myObject: {property:{subproperty:{}}}};

最佳答案

可用于解决问题的功能是使用字符串索引的动态属性访问。 obj["foo"]obj.foo 相同。

var properties = myString.split('.');
var obj = {};
var curr = obj;
for(var i=0; i<properties.length; i++){
var next = {}
curr[properties[i]] = next;
curr = next;
}

关于javascript - 将字符串转换为嵌套的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24660203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com