📜  查找 countby 的最大值 - Javascript (1)

📅  最后修改于: 2023-12-03 14:55:31.979000             🧑  作者: Mango

查找 countby 的最大值 - Javascript

在Javascript中,我们经常需要对数组进行操作。countBy是一个在lodash库中非常有用的函数,它接受一个数组和一个函数,在函数的作用下,把数组中的元素进行分类,并返回每个分类下的元素个数。

在这篇文章中,我们将介绍如何使用countBy函数来查找它的最大值。

什么是countBy?

首先,我们来简单介绍一下countBy。这个函数是一个lodash库中的函数,它的作用是根据给定的函数对数组元素进行分类,并返回每个分类下元素的个数。

举个例子,比如说我们有一个数组[1,2,3,4,5,6],我们可以通过对数组中每个元素进行平方,并把结果分成大于5和小于5两个类别,然后统计每个类别下的元素个数。代码如下:

const result = _.countBy([1,2,3,4,5,6], (num) => {
  return num*num > 25 ? '大于5' : '小于5';
});

console.log(result);

// output: { '小于5': 4, '大于5': 2 }
查找countBy的最大值

下面我们来看看如何查找countBy的最大值。我们首先来看一下countBy函数的返回值,它是一个包含各个元素数量的对象。在这个对象中,我们可以利用Object.keys函数获得数量最多的元素。

const result = _.countBy([1,2,3,4,5,5,5,6,6,6,6], (num) => {
  return num%2 == 0 ? '偶数' : '奇数';
});

const maxNum = Math.max(...Object.values(result));
const maxKey = Object.keys(result).find(key => result[key] === maxNum);

console.log(maxKey); // 偶数
console.log(maxNum); // 4

在上面的代码片段中,我们通过Math.max()函数找到了数量最多的元素的个数,并通过Object.keys().find()函数找到了该元素。在本例中,偶数出现了4次,是数量最多的元素。

总结

本文介绍了如何利用lodash中的countBy函数来对数组元素进行分类,并找到数量最多的元素。在实际工作中,我们可以利用这个函数轻松完成许多复杂的分类统计工作。