function fuck (inObj, path, parms) { // 一個長得像對象的字符串 var Things = path.split("."); // 即將返回的對象 var obj = inObj; // 不斷迭代的key值 var key = ""; // 賦值 var strparms = JSON.stringify(parms); for (var i = 0; i < Things.length; i++) { // 累加key key += Things[i] // 如果對象不存在 if (!eval("obj." + key)) { // 則創建它 eval("obj." + key + " = {}") } // 如果是最后一個的話 if (i === Things.length - 1) { eval("obj." + key + " = " + strparms) } // 再疊加一次. key += "."; } // 循環結束,返回對象 return obj } var path = "D01.D0104.D010442.D01044207.D0104420707.D010442070701" fuck({a: 123}, path, {id: 123, label: 321})