我已經寫了這個笨重的功能,採取兩個字符串,並創建一個對象。我們的目標:循環這個嵌套的obj構造函數?
// buildObj("house.wall.paint.color", "blue");
// returns {house: {wall: {paint: {color: "blue"}}}}
我能做到這一點蠻力沒有環,但我敢肯定它可以被濃縮,並用循環做更多的優雅。然而,當我嘗試處理嵌套和索引時,我的腦袋在分形瘋狂中爆炸。
var p1 = "house.wall.paint.color";
var p2 = "blue";
var arr = [];
var obj = [];
buildObj(p1, p2);
console.log(obj);
function buildObj(p1, p2) {
var keys = p1.split('.');
var val = p2;
var arr = $.merge(keys, [val]);
var prop = {};
var prop2 = {};
var prop3 = {};
var prop4 = {};
var last = arr.length - 1;
prop[arr[last - 1]] = arr[last];
obj = prop;
prop2[arr[last - 2]] = obj;
obj = prop2;
prop3[arr[last - 3]] = obj;
obj = prop3;
prop4[arr[last - 4]] = obj;
obj = prop4;
return obj;
}
謝謝你。真棒。 –
很高興有幫助。 :) –