Javascript - 在Group-by之后将一个数组转换为两个数组

标签 javascript arrays group-by

<分区>

我有如下数组

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

我想要这样的输出

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

qtyArray = [2, 4, 1]

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

TIA

最佳答案

你可以拿一个Map并获取键和值。

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);

关于Javascript - 在Group-by之后将一个数组转换为两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58452208/

相关文章:

javascript - pdb.set_trace() 在网络浏览器 javascript 中是否等效?

javascript - 谷歌浏览器扩展,将选项卡添加到上下文菜单

c++ - 在 C++ 中存储和访问 N 维位数组中单个位的最快方法是什么?

来自子查询和分组问题的 MySQL 最大值

javascript - 如何使用 Bootstrap 和 Angular 表单逐步验证表单?

javascript - Jquery 换行符替换为 br 标签不起作用?

java - 当我们将数组作为参数传递给其他函数时,数组的值会如何变化?

python - 将前 n 行作为列添加到 NumPy 数组

sql - 按星期几和小时对 SQL 进行排序/分组

mysql - Heroku PG错误: group by needs created at