Я написал эту неуклюжую функцию, чтобы взять две строки и создать из них объект. Цель:Запустить эту встроенную функцию buj builder?
// 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;
}
Благодарим вас. Потрясающие. –
Рад помочь. :) –