我有一些方法可以扁平化数组 javascript,即将 [1,[2,3]]
转换为 [1,2,3]
。但我正在寻找一种简洁的方法来展平字典,同时保留键。具体来说,我想要一本如下所示的字典:
{'key1':1,'key2':{'key3':2,'key4':3,'key5':{'key6':4}}}
要转换成:
{'key1':1, 'key2.key3':2,'key2.key4':3,'key2.key5.key6':4}
确切的输出格式(字典、对列表等)并不重要,只要它清楚地将嵌套键的字符串与值相关联即可。出于我的目的,假设没有一个键包含 .
字符也是可以的,这样它就可以用来表示下一个键。
最佳答案
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);
希望这是您想要的:
{ key1: 1, 'key2.key3': 2, 'key2.key4': 3, 'key2.key5.key6': 4 }
关于javascript - 扁平化 Javascript 字典,保留嵌套键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22047140/