<分区>
我有一个名为 MyObject
的对象和一个名为 createEntry()
的方法,旨在创建一个新的MyObject
的属性和该属性的子属性,或者如果它已经存在则完全跳过它。
我的代码:
var MyObject = {
createEntry: function (val1, val2, val3, val4) {
this[val1] = this[val1] || {};
this[val1][val2] = this[val1][val2] || {};
this[val1][val2][val3] = val4;
}
};
MyObject.createEntry("val1", "val2", "val3", "val4");
如上面的函数所示,我尝试为 createEntry()
方法的每个参数创建一个新的子对象,最后两个除外,其中 val3
是一个property
或 method
并且val4
是它的值。
在我的方法处于当前状态的情况下,我只能达到第 3 级,而后续的方法需要越来越长的代码。我假设上述可以通过 while
循环实现,但我还没有弄明白。
问题:如何根据传递给上述函数的参数数量以如下所示的树形方式创建无限子对象:
var MyObject = {
val1: {
val2 {
val3: val4
}
}
}