Показать сообщение отдельно
  #17 (permalink)  
Старый 08.10.2011, 15:06
Аспирант
Отправить личное сообщение для stopkran Посмотреть профиль Найти все сообщения от stopkran
 
Регистрация: 12.12.2009
Сообщений: 54

Написал вариант, а потом увидел, что он почти совпадает с вариантом ksa. Ну, всё равно выложу (проструктурировал получше, да и вывод результатов удобнее):

var arr = ['Сахар','Сахар','Молоко','Огурцы','Молоко','Молоко','Молоко','Мед','Огурцы','Сахар'],
tmp_obj = {}, tmp_arr = [], i, l = arr.length;

//заполняем временный объект и подсчитываем количество
for (i = 0; i < l; i ++) tmp_obj[arr[i]] = (tmp_obj[arr[i]] || 0) + 1;

//превращаем временный объект в массив, чтоб сортировать
for (i in tmp_obj) tmp_arr.push([i, tmp_obj[i]])

tmp_arr.sort(function(a,b){return b[1] - a[1]});

alert(tmp_arr.join('; '))

Последний раз редактировалось stopkran, 08.10.2011 в 15:09.
Ответить с цитированием