Показать сообщение отдельно
  #10 (permalink)  
Старый 07.10.2011, 23:16
Аватар для aiky
Аспирант
Отправить личное сообщение для aiky Посмотреть профиль Найти все сообщения от aiky
 
Регистрация: 06.04.2010
Сообщений: 90

var arr = ['Сахар','Сахар','Молоко','Огурцы','Молоко','Мед','Огурцы','Сахар'];
arr.sort();

var cur = arr[0];
var k = 1;
var tmp = {
	'arr':[],
	'hash':{},
	'add':function(k,val){
		if(!tmp.hash[k]){
			tmp.hash[k] = [];
			tmp.arr.push(k);
		}
		tmp.hash[k].push(val);
	}
}

for(var i = 1; i < arr.length; i++){
	if(arr[i] !== cur){
		tmp.add(k,cur);
		cur = arr[i];
		k = 1;
	}
	else k++;
}
tmp.add(k,cur);
tmp.arr.sort(function(a,b){return b - a});

arr = [];
for(var i = 0; i < tmp.arr.length; i++)
  for(var j = 0; j < tmp.hash[tmp.arr[i]].length; j++) arr.push(tmp.hash[tmp.arr[i]][j]);

delete cur;
delete k;
delete tmp;

alert(arr);

Последний раз редактировалось aiky, 07.10.2011 в 23:20.
Ответить с цитированием