Cрочно помогите !!!Javascript
Не могу решить задачу уже 2 недели.
Есть список a[ 1,2,3,1,1,1,2,2,3,3,3,3]. Нужно вывести список так чтобы сначала в списке были значения которые повторяются большее число раз. Не знаю как реализовать. |
Зубик,
:cray: var a = [1, 2, 3, 1, 1, 1, 2, 2, 3, 3, 3, 3], c = {}; a.forEach(function(b) { c[b] ? c[b]++ : c[b] = 1 }); a.sort(function(b, d) { return c[d] - c[b] }); alert(a); |
Спасибо.Наверно мне не одолеть javascript
|
Если колличество элементов одинаковое то такой алгоритм не работает.
|
как вывести чтоб было [3,3,3,2,2,2,1,1,1]
|
Цитата:
|
если в списке одинаковые элементы.
|
Сортировка массива по убыванию с приоритетом общего количества данных элементов
Зубик,
var a = [ 1,2,3,1,1,2,3,3,2], c = {}; a.forEach(function(a) { c[a] ? c[a]++ : (c[a]=1) }); a.sort(function(a,b) { return c[b] - c[a] || b - a }) alert(a) |
Большое спасибо
|
Часовой пояс GMT +3, время: 07:03. |