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})