gpt4 book ai didi

javascript - 如何动态创建复杂/嵌套的 js 对象?

转载 作者:行者123 更新时间:2023-11-30 07:08:14 25 4
gpt4 key购买 nike

我有以下数据。

var data = "a.b.c.d";//只是一个例子,但可以更深入。

  1. 作为字符串的嵌套结构来创建 a.b.c.n

现在我想像这样从这些数据创建一个 js 对象..

{
"a":{
"b":{
"c":{
and so on till the given depth.
}
}
}

}

我尝试了什么

function createHierarchy( obj, group, i){

if(i === group.length){
return obj;
}
else{
if(obj[group[i]] === undefined)
{
obj[group[i]] = new Object();

}

createHierarchy(obj[group[i]], group, ++i);
}
}

问题

此函数返回未定义,因为我在每次递归调用中发送新创建的子对象,并且由于新创建的对象是 {},因此最终结果是未定义的。

更新

我只想创建不存在的对象。例如:如果 d 已经存在,我将向其中插入一个值。否则我会创建它。

这就是我添加到@Tholle 的回答中的内容。

if(temp[array[i]] === undefined)
temp = temp[array[i]] = {};
else
temp = temp[array[i]][name] = value;

所以请提出一个出路。

最佳答案

var data = "a.b.c.n";
var array = data.split(".");

var result = {};
var temp = result;
for(var i = 0; i < array.length; i++) {
temp = temp[array[i]] = {};
}

console.log(result);

关于javascript - 如何动态创建复杂/嵌套的 js 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390915/

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