首页 > 解决方案 > 使用 Javascript 将字典列表转换为列表字典

问题描述

是否有内置的 Javascript 函数来转换字典列表

const L = 
      [ { "day": "20201210", "count": "100" } 
      , { "day": "20201211", "count": "120" } 
      , { "day": "20201212", "count":  "90" } 
      , { "day": "20201213", "count": "150" } 
      ] 

进入这样 的列表字典

const D = 
      { "day"   : [ "20201210", "20201211", "20201212", "20201213"] 
      , "count" : [ "100", "120", "90", "150"] 
      } 

? 如果不是,在 JS 中最简单的方法是什么?

(它有点类似于矩阵“转置”操作)。

注意:这里是转置,而不是像在对象数组上分组的最有效方法中那样的分组

标签: javascriptlistdictionary

解决方案


假设所有对象都具有相同的键并且您的数组不为空,这将起作用:

let D = {};
Object.keys(L[0]).forEach(k => {
    D[k] = L.map(o => o[k]);
});

当然有更有效的解决方案,但这很简短,而且在效率方面也不算太差。


推荐阅读