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);
}
哪个应该在 IMO 中起作用,但不起作用(无限循环,一定是一个愚蠢的错误,但看不到它)。
而且我敢肯定一定有一个更简单的方法