J-b*_*bob 1 javascript dictionary
我有一些方法可以展平数组 javascript,即转换[1,[2,3]]为[1,2,3]. 但我正在寻找一种简洁的方法来展平字典,同时保留键。具体来说,我想要一本如下所示的字典:
{'key1':1,'key2':{'key3':2,'key4':3,'key5':{'key6':4}}}
Run Code Online (Sandbox Code Playgroud)
需转换为:
{'key1':1, 'key2.key3':2,'key2.key4':3,'key2.key5.key6':4}
Run Code Online (Sandbox Code Playgroud)
确切的输出格式(字典、对列表等)并不重要,只要它清楚地将嵌套键的字符串与值相关联即可。出于我的目的,假设没有一个键包含.字符也是可以的,这样它就可以用来表示下一个键。
var keys = {'key1':1,'key2':{'key3':2,'key4':3,'key5':{'key6':4}}};
var result = {};
function serialize(keys, parentKey){
for(var key in keys){
if(parseInt(keys[key], 10)){
result[parentKey+key] = keys[key];
}else{
serialize(keys[key], parentKey+key+".");
}
}
}
serialize(keys, "");
console.log(result);
Run Code Online (Sandbox Code Playgroud)
希望这是您想要的:
{ key1: 1, 'key2.key3': 2, 'key2.key4': 3, 'key2.key5.key6': 4 }
Run Code Online (Sandbox Code Playgroud)