JavaScript 动态生成深层嵌套对象属性的方法

作者:木棉时间:2026-10-27 16:03:53浏览:226

本文介绍如何在JavaScript中通过字符串路径自动生成深层嵌套的对象属性。针对手动逐层创建对象繁琐且易错的问题,提供了一段自动处理逻辑的代码示例。该方法利用split分割路径字符串,结合eval动态构建对象层级,适用于属性层级较多且不确定性的场景,帮助开发者简化复杂对象结构的初始化过程。

动态生成深层嵌套对象属性的方法

假设我们存在一个如下所示的基础对象结构。

具体代码实现如下:

 
var obj = { a:{
b:"bb"
} 
} 

此时,若需为 obj 对象添加深层嵌套属性,例如执行 obj.a.b.c.d.f="ff" 的赋值操作。常规做法是手动逐层初始化中间对象,即依次执行 obj.a.b.c={} 和 obj.a.b.c.d={},最后再赋值。然而,当属性层级极深或路径复杂时,这种手动方式不仅繁琐且难以维护。为此,下面提供一种能够自动生成对象属性的解决方案。


相关代码如下:

 
function autoCreateObjProperty(temString){
var TemObjs = temString.split(".");
for(var i =0;i<TemObjs.length;i++){
var ttt = TemObjs[i];
if(!obj.hasOwnProperty(TemObjs[i])){
var objString="obj";
for(var j= 1;j<=i;j++){
objString+="."+TemObjs[j];
} 
obj = eval(objString);
if(obj == undefined){
var temObjString="obj"; //对象的名var obj = {}
for(var j= 1;j<i;j++){
temObjString+="."+TemObjs[j];
} 
obj = eval(temObjString);
obj[TemObjs[i]]={};
obj={};
} 
}else{
obj = obj[TemObjs[i]];
} 
} 
return obj;
} 
作者最新文章