【发布时间】:2019-04-29 19:14:20
【问题描述】:
我有一个数组,我想获取出现次数最多的元素,
第一个场景
let arr1 = ['foo', 'foo', 'foo', 'bar', 'bar', 'bar', 'baz', 'baz']
let newArr = someFunc(arr1)
所以在这种情况下,我希望新数组具有值
console.log(newArr) // ['foo', 'bar']
因为值 'foo' 和 'bar' 是数组中出现次数最多的元素
第二种情况
let arr2 = ['foo', 'foo', 'foo', 'bar', 'baz']
let newArr = someFunc(arr2)
所以在这种情况下,我希望新数组具有值
console.log(newArr) // ['foo']
因为值 'foo' 是数组中出现次数最多的元素
这是我尝试过的,即使有多个元素出现相同的次数,它也只会让我获得其中一个元素
newArr= arr.sort((a,b) =>
arr.filter(v => v===a).length
- arr.filter(v => v===b).length
).pop()
【问题讨论】:
-
如何定义“最频繁”?出现次数超过 2 次或排名前 n 次?您尝试过哪些代码被卡住了?
-
向我们展示您实施它的尝试
-
我的意思是我想要数组的顶部 n,它可以是单个元素,如果多个元素是 n @gg
-
您的问题不清楚。 1)请解释您的问题以定义您对“频繁元素”的定义| 2) 向我们展示您的尝试。
-
如果您只需要一个概念:将元素作为键放入对象中,并在每次碰撞时将其可敬的值增加一个
标签: javascript arrays frequency