1
建立嵌套属性
var keys1 = ["foo", "moreFoo"],
value1 = "bar",
keys2 = ["foo", "ultraFoo"],
value2 = "bigBar";
我想使这会为我建造对象的函数:如何从关键字符串
object {
foo : {moreFoo: "bar", ultraFoo: "bigBar"}
}
我认为把我的阵列中的每一个,并执行以下操作:
function recursiveObjectBuild(object, keys, value) {
var index = 0;
function loop(object, index) {
var key = keys[index];
//Property exists, go into it
if (key in object) {
loop(object[key], ++index);
//Property doesn't exist, create it and go into it
} else if (index < keys.length-1) {
object[key] = {};
loop(object[key], ++index);
//At last key, set value
} else {
object[key] = value;
return object;
}
}
return loop(object, 0);
}
哪个应该工作国际海事组织但不(无限循环,必须是一个愚蠢的错误,但不能看到它)。
而且我敢肯定,必须有一个更简单的方法
请伪代码解释,这将是更好的:) –
似乎第6行是一个问题。我没有看到“对象”被设置的位置:“if(key in object){”。另外,为什么不在对象生成器中使用JSON? –
@ mohamed-abshir对象通过递归函数作为参数收到 您如何使用JSON来实现? – Rayjax