extendKeyWithDot

Run Settings
LanguageJavaScript
Language Version
Run Command
console.log("Hello World!"); /** * 将对象中带.的组合key扩展成对象 * 注:重复key会被替换掉 */ function extendKeyWithDot(input){ let output = {}; let ks = Object.getOwnPropertyNames(input); if(ks && ks.length != 0){ ks.forEach(k=>{ if(!!k.indexOf('.')){ let tail = output; let subks = k.split('.'); subks.forEach((subk, index)=>{ if(index < subks.length -1){ tail[subk] = tail[subk]||{}; tail = tail[subk]; }else{ tail[subk] = input[k]; } }); }else{ output[k] = input[k]; } }); } return output; } let input = { 'a.b1.c1.dd': 'abcdd', 'a.d2.xx': 'adxx', 'a.e3': 'ae' } let output = extendKeyWithDot(input); console.log("output", JSON.stringify(output, null, 2)) let input2 = { 'a.b1.c1.dd': 'abcdd', 'a.d2.xx': 'adxx', 'a.e3': 'ae', 'a': 1 } let output2 = extendKeyWithDot(input2); console.log("output2", JSON.stringify(output2, null, 2))
Editor Settings
Theme
Key bindings
Full width
Lines