按元素实例数对数组进行排序
Sort array after number of element instances
考虑这个数组。
[1, 2, 2, 2, 3, 4, 4, 5]
我想按照某个元素值存在的次数顺序对这个数组进行排序。因此,在上述情况下,该值2
存在三次,因此这些值应排在第一位。后跟两个实例4
,然后是最后一个1, 3, 5
。
[2, 2, 2, 4, 4, 1, 3, 5]
以下是我可能的做法:
-
遍历数组构建一个映射(现在只是一个普通对象,因为我们还没有 ES6 的
Map
),其中包含数字的属性名称(2
等),其中该属性的值是该数字在数组中出现的次数。(例如,在循环期间,如果我们以前见过该数字,则在值中添加 1;如果没有,则从 1 开始。 -
一旦我有了地图,我会使用
Array#sort
进行排序,给它一个比较器函数,该函数根据给定函数的两个值中的每一个出现的次数返回结果。(如果我们最终将 2 的计数与 2 的计数进行比较,结果将是0
的,它们将被考虑为偶数。
好的,只有提示。 获取一个哈希图,将计数放在每个项目上,当您为每个元素计数时,相应地对其进行排序并重建数组。
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在数组的 2/3 上调用自身的排序算法
- 数组值的排序以匹配另一个数组ES6
- 按不同项目对对象数组进行排序
- 根据Javascript中的字符串值对数组的数组进行排序
- 在不同的javascript数组中对json响应进行排序
- 对对象数组中的数组进行排序
- 按特定键对对象数组进行排序
- 使用jquery根据数组对表行进行排序
- 尝试对对象数组进行排序但拼接不是一个函数
- 对javascript中某些键的对象数组进行排序
- Javascript按数字顺序排序()数组
- Javascript排序索引链接数组
- 在jquery中对时间数组进行排序
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- Javascript中的多维数组排序索引问题
- 如何在mongodb中根据数组内容的差异进行排序
- 在Javascript中对具有特定异常的对象数组进行排序
- 数组数据排序类似mysql查询
- 在小于O(n)时间内找到(排序)数组中的重复元素