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