按元素实例数对数组进行排序

Sort array after number of element instances

本文关键字:排序 数组 元素 实例      更新时间:2023-09-26

考虑这个数组。

[1, 2, 2, 2, 3, 4, 4, 5] 

我想按照某个元素值存在的次数顺序对这个数组进行排序。因此,在上述情况下,该值2存在三次,因此这些值应排在第一位。后跟两个实例4,然后是最后一个1, 3, 5

[2, 2, 2, 4, 4, 1, 3, 5] 

以下是我可能的做法:

  1. 遍历数组构建一个映射(现在只是一个普通对象,因为我们还没有 ES6 的Map),其中包含数字的属性名称(2 等),其中该属性的值是该数字在数组中出现的次数。(例如,在循环期间,如果我们以前见过该数字,则在值中添加 1;如果没有,则从 1 开始。

  2. 一旦我有了地图,我会使用Array#sort进行排序,给它一个比较器函数,该函数根据给定函数的两个值中的每一个出现的次数返回结果。(如果我们最终将 2 的计数与 2 的计数进行比较,结果将是0的,它们将被考虑为偶数。

好的,只有提示。 获取一个哈希图,将计数放在每个项目上,当您为每个元素计数时,相应地对其进行排序并重建数组。