首页 > 解决方案 > Javascript - 在 Group-by 之后将一个数组转换为两个

问题描述

我有如下数组

myArray = ["foo", "bar", "foo", "bar", "bar", "bar", "zoom"]

我想要这样的输出

nameArray = ["foo", "bar", "zoom"] 

qtyArray = [2, 4, 1]

我将使用生成的两个数组中的 Plotly 来绘制条形图。

TIA

标签: javascriptarraysgroup-by

解决方案


您可以使用 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);


推荐阅读