Пользовательская функция сортировки javascript для размещения вначале нижнего числа - PullRequest
0 голосов
/ 11 июня 2019

Необходимо создать собственную сортировку для массива -

- первые отдельные числа по частоте --- подмножества с частотой 1 --- подмножества с частотой 2

частично отсортированные данные - по порядку частоты asc - затем мы сортируем каждое подмножество элементов, имеющих одинаковую частоту, в не-порядковом порядке

function cSort(arr) {
    if(typeof arr !== "undefined") {
        arr.sort(function(a, b) {
          return a - b;
        });

        return arr
    }
}

должен удовлетворять тестам

- тест 1 вход [5, 3, 1, 2, 2, 4] выход [1, 3, 4, 2, 2]

- тест 2 вход [10, 8, 5, 5, 5, 5, 1, 1, 1, 4, 4] выход [8, 4, 4, 1, 1, 1, 5, 5, 5, 5]

- текущий jsfiddle 1 http://jsfiddle.net/6mekdn8h/

новая скрипка 2 http://jsfiddle.net/6mekdn8h/1/

1 Ответ

2 голосов
/ 11 июня 2019

Вы можете выполнить сортировку по количеству экземпляров каждого элемента.

var array = [5, 3, 1, 2, 2, 4].slice(1),
    hash = array.reduce((h, v, i) => (h[v] = (h[v] || 0) + 1, h), {});

array.sort((a, b) => hash[a] - hash[b] || a - b);

console.log(array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...