JavaScript 数组:查找出现次数大于 n 的所有元素
我们有一个包含一些重复条目的数字/字符串文字的数组。我们的任务是编写一个函数,该函数接受一个正整数 n 并返回所有元素的一个子数组,这些元素出现的次数大于或等于由唯一参数指定的数字 n。
因此,让我们为这个函数编写代码 -
我们将使用 Map() 来记录元素频率,然后返回超过指定计数的元素。代码如下 -
示例
const arr = [34, 6, 34, 8, 54, 7, 87, 23, 34, 6, 21, 6, 23, 4, 23]; const moreThan = (arr, num) => { const creds = arr.reduce((acc, val) => { let { map, res } = acc; const count = map.get(val); if(!count && typeof count !== 'number'){ map.set(val, 1); }else if(num - count <= 1){ res.push(val); } else { map.set(val, count+1); }; return {map, res}; }, { map: new Map(), res: [] }); return creds.res; }; console.log(moreThan(arr, 3));
输出
控制台中的输出为 -
[34, 6, 23]
广告