24.03.2016, 10:48
|
Новичок на форуме
|
|
Регистрация: 24.03.2016
Сообщений: 6
|
|
Cрочно помогите !!!Javascript
Не могу решить задачу уже 2 недели.
Есть список a[ 1,2,3,1,1,1,2,2,3,3,3,3].
Нужно вывести список так чтобы сначала в списке были значения которые повторяются большее число раз.
Не знаю как реализовать.
|
|
24.03.2016, 11:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,133
|
|
Зубик,
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);
|
|
24.03.2016, 11:04
|
Новичок на форуме
|
|
Регистрация: 24.03.2016
Сообщений: 6
|
|
Спасибо.Наверно мне не одолеть javascript
|
|
25.03.2016, 10:40
|
Новичок на форуме
|
|
Регистрация: 24.03.2016
Сообщений: 6
|
|
Если колличество элементов одинаковое то такой алгоритм не работает.
|
|
25.03.2016, 10:41
|
Новичок на форуме
|
|
Регистрация: 24.03.2016
Сообщений: 6
|
|
как вывести чтоб было [3,3,3,2,2,2,1,1,1]
|
|
25.03.2016, 10:57
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от Зубик
|
как вывести чтоб было [3,3,3,2,2,2,1,1,1]
|
А почему так, а не наоборот? В первом вопросе были условия сортировки, а это на основании чего?
|
|
25.03.2016, 11:08
|
Новичок на форуме
|
|
Регистрация: 24.03.2016
Сообщений: 6
|
|
если в списке одинаковые элементы.
|
|
25.03.2016, 11:09
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,133
|
|
Сортировка массива по убыванию с приоритетом общего количества данных элементов
Зубик,
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)
Последний раз редактировалось рони, 25.03.2016 в 11:12.
|
|
25.03.2016, 11:14
|
Новичок на форуме
|
|
Регистрация: 24.03.2016
Сообщений: 6
|
|
Большое спасибо
|
|
|
|