javascript - 使用 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 中最简单的方法是什么?
(它有点类似于矩阵“转置”操作)。
注意:这里是转置,而不是像在对象数组上分组的最有效方法中那样的分组
解决方案
假设所有对象都具有相同的键并且您的数组不为空,这将起作用:
let D = {};
Object.keys(L[0]).forEach(k => {
D[k] = L.map(o => o[k]);
});
当然有更有效的解决方案,但这很简短,而且在效率方面也不算太差。
推荐阅读
- mysql - 如何连接到 minikube 集群外的 mysql 数据库
- java - Guice 默认绑定单例还是工厂?
- python - 为了以相反的顺序合并 2 个排序的链表,我得到 AttributeError 'NoneType' object has no attribute 'next' 对于某些测试用例。为什么
- python - Django 电子邮件发送但未收到
- thymeleaf - 在 Thymleaf 中用逗号分隔数字
- java - Android Studio 应用程序不断崩溃而没有任何错误
- excel - 在一个单元格中将公式作为文本并使用该文本将公式放入另一个单元格中
- elixir - 根据存在的特殊关键字的数量为列表中的每个字符串打分
- java - Lombok 注释给出恶意代码错误 - 可能通过返回对可变对象的引用来暴露内部表示错误
- java - 我的 Spring Boot 程序甚至在完成单个周期之前就重新启动