gpt4 book ai didi

javascript - JS : Counting Elements in Array -> Returning Array of Arrays

转载 作者:行者123 更新时间:2023-11-30 14:46:07 25 4
gpt4 key购买 nike

我有一个如下所示的数组:

fruits = ['Apple', 'Apple', 'Peach', 'Apple', 'Banana', 'Pear', 'Apple', 'Banana', 'Peach'];

现在我尝试对包含的元素进行计数以获得如下所示的结果:

[
['Apple', 4],
['Peach', 2],
['Banana', 2],
['Pear', 1]
]

我能够将其缩小为 map 。像这样:

fruits.reduce((acc, val) => acc.set(val, 1 + (acc.get(val) || 0)), new Map());

但我想不通,如何创建这个包含数组的数组。

有没有人有想法?

最佳答案

Map 有一个 entries返回键值对迭代器的方法。如果需要数组,可以使用 Array.from:

const fruits = ['Apple', 'Apple', 'Peach', 'Apple', 'Banana', 'Pear', 'Apple', 'Banana', 'Peach'];

const fruitMap = fruits
.reduce((acc, val) => acc.set(val, 1 + (acc.get(val) || 0)), new Map());

// My preference because it's very clear what it does:
const fruitEntries = Array.from(fruitMap.entries());

// Other options:
/*
const fruitEntries = Array.from(fruitMap)
const fruitEntries = [...fruitMap];
*/


console.log(fruitEntries);

关于javascript - JS : Counting Elements in Array -> Returning Array of Arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48904603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com