Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 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].
Нужно вывести список так чтобы сначала в списке были значения которые повторяются большее число раз.
Не знаю как реализовать.
Ответить с цитированием
  #2 (permalink)  
Старый 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);
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2016, 11:04
Новичок на форуме
Отправить личное сообщение для Зубик Посмотреть профиль Найти все сообщения от Зубик
 
Регистрация: 24.03.2016
Сообщений: 6

Спасибо.Наверно мне не одолеть javascript
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2016, 10:40
Новичок на форуме
Отправить личное сообщение для Зубик Посмотреть профиль Найти все сообщения от Зубик
 
Регистрация: 24.03.2016
Сообщений: 6

Если колличество элементов одинаковое то такой алгоритм не работает.
Ответить с цитированием
  #5 (permalink)  
Старый 25.03.2016, 10:41
Новичок на форуме
Отправить личное сообщение для Зубик Посмотреть профиль Найти все сообщения от Зубик
 
Регистрация: 24.03.2016
Сообщений: 6

как вывести чтоб было [3,3,3,2,2,2,1,1,1]
Ответить с цитированием
  #6 (permalink)  
Старый 25.03.2016, 10:57
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Зубик Посмотреть сообщение
как вывести чтоб было [3,3,3,2,2,2,1,1,1]
А почему так, а не наоборот? В первом вопросе были условия сортировки, а это на основании чего?
Ответить с цитированием
  #7 (permalink)  
Старый 25.03.2016, 11:08
Новичок на форуме
Отправить личное сообщение для Зубик Посмотреть профиль Найти все сообщения от Зубик
 
Регистрация: 24.03.2016
Сообщений: 6

если в списке одинаковые элементы.
Ответить с цитированием
  #8 (permalink)  
Старый 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.
Ответить с цитированием
  #9 (permalink)  
Старый 25.03.2016, 11:14
Новичок на форуме
Отправить личное сообщение для Зубик Посмотреть профиль Найти все сообщения от Зубик
 
Регистрация: 24.03.2016
Сообщений: 6

Большое спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста с калькулятором javascript Хабиб1122 Javascript под браузер 6 27.01.2016 11:56
Помогите поправить код JavaScript на сайте karvor AJAX и COMET 1 08.02.2015 13:13
JavaScript помогите написать программу sasha332 Общие вопросы Javascript 1 04.06.2014 09:19
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Помогите, пож, младенцу восстановить работоспобность JavaScript MishkaKosolapij Общие вопросы Javascript 4 16.08.2009 23:02