Sof*_*bal 0 javascript sorting sequence
我有一个像这样的数组[1,1,1,1,2,2,2,3,3],我想将其转换为[1,2,3,1,2,3,1,1]使用jQuery.我没有代码也不知道我该怎么做.
Nin*_*olz 23
您可以通过使用具有相同组数组的哈希表的临时对象来使用map进行排序.从中获取已使用数组的长度作为排序组.
排序发生在组和索引中.
结果与已排序的临时数组的索引映射.
var array = [1, 1, 1, 1, 2, 2, 2, 3, 3],
groups = Object.create(null),
result = array
.map((value, index) => ({ index, group: groups[value] = (groups[value] || 0) + 1 }))
.sort((a, b) => a.group - b.group || a.index - b.index)
.map(({ index }) => array[index]);
console.log(...result);Run Code Online (Sandbox Code Playgroud)
var array = [1, 1, 1, 1, 2, 2, 2, 3, 3],
groups = Object.create(null),
result = array
.map((value, index) => ({ index, group: groups[value] = (groups[value] || 0) + 1 }))
.sort((a, b) => a.group - b.group || a.index - b.index)
.map(({ index }) => array[index]);
console.log(...result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |