javascript - 扁平化 Javascript 字典,保留嵌套键

标签 javascript dictionary

我有一些方法可以扁平化数组 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/

相关文章:

javascript - 图片url,a、img的单独点击事件

javascript - HighCharts showLoading() 未按预期工作

javascript - 遍历数组数组

python - 无法更新多处理的 manager.dict() 中的嵌套字典值

python - 按值对字典进行排序而不丢失键的信息

javascript - Jquery - Windows Load 如何保持更长时间

javascript - jQuery 自动完成不适用于克隆

javascript - IE与字符串匹配

javascript - 了解 jQuery map

groovy - 将名为 metaClass 的键放入 Map 中