javascript - Javascript - 在 Group-by 之后将一个数组转换为两个
问题描述
我有如下数组
myArray = ["foo", "bar", "foo", "bar", "bar", "bar", "zoom"]
我想要这样的输出
nameArray = ["foo", "bar", "zoom"]
和
qtyArray = [2, 4, 1]
我将使用生成的两个数组中的 Plotly 来绘制条形图。
TIA
解决方案
您可以使用 aMap
并获取键和值。
var array = ["foo", "bar", "foo", "bar", "bar", "bar", "zoom"],
map = array.reduce((m, v) => m.set(v, (m.get(v) || 0) + 1), new Map),
values = [...map.keys()],
counts = [...map.values()];
console.log(...values);
console.log(...counts);
推荐阅读
- excel - 检查 AddMember 方法是否失败
- snmp - PySNMP 的 nextCmd() 中提供的 errorIndication、errorStatus 和 errorIndex 是什么?
- asp.net - 在 .NET 中的应用程序结束时调用函数
- ios - 展开部分单元格时 TableView 跳过
- java - 无法使用 SpringBoot + Postgresql 打开 JDBC 连接以执行 DDL
- html - 跟踪来自锚元素的请求和响应
- html - 隐藏在正文中的元素,具有特定的类
- angular - 子组件的角度材质样式不起作用
- xml - Spring boot POM.xml 缺少依赖项
- mysql - 授予对具有相同前缀的数据库集的所有权限