aiky, 
	Спасибо большое! Очень ВАМ БЛАГОДАРЕН! :thanks:  | 
	
		
 aiky, спешу огорчить вас, оператор delete не удаляет переменные, только свойства. 
	 | 
	
		
 Предложу такой вариант... 
	
var a = ['Молоко','Огурцы','Молоко','Сахар','Сахар','Мед','Огурцы','Сахар'];
var i,b=[],c=[]
for (i=0; i<a.length; i++) {
	b[a[i]]=(b[a[i]] || 0)+1
}
for (i in b) {
	c[c.length]={
		Name: i,
		All: +b[i]
	}
}
c.sort(function (a,b){return b.All-a.All})
for (i=0; i<c.length; i++) {
	alert(c[i].Name+'='+c[i].All)
}
 | 
	
		
 Цитата: 
	
  | 
	
		
 aiky, 
	как насчёт правильного варианта делать все переменные локальными?  | 
	
		
 Вариант ... 
	
<script type="text/javascript">
var a = ['Молоко','Огурцы','Молоко','Сахар','Сахар','Мед','Огурцы','Сахар'],
    i, b = {},
    c = [];
for (i = 0; i < a.length; i++) a[i] in b ? b[a[i]]++ : (b[a[i]] = 1, c.push(a[i]));
c.sort(function (d, e) {
    return b[e] - b[d]
});
for (i = 0; i < c.length; i++) document.write(i + 1 + ". " + c[i] + "<br />");
</script>
 | 
	
		
 Написал вариант, а потом увидел, что он почти совпадает с вариантом 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('; '))
 | 
	
		
 Цитата: 
	
  | 
	
		
 Kolyaj, 
	вам действительно надо объяснить подробно, что именно я сделал? Или ваш вопрос - обычная вежливость, не требующая ответа?  | 
	
		
 stopkran, 
	Во, все-таки кириллицу возможно в ключах использовать, не решился. Так гораздо все проще.  | 
| Часовой пояс GMT +3, время: 16:46. |