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