690
 

Сортировка ассоциативных массивов по ключам

Пусть вас не вводит в заблуждение название статьи – в JavaScript нет ассоциативных массивов. Однако есть нечто подобное. С этой целью используются объекты, которые записываются в виде “ключ” – “значение”. Например так:

var data = {
	"d" : "last entry",
	"a" : "first entry",
	"b" : "second entry",
	"c" : "third entry"
}

Чтобы отсортировать такой объект по его ключам, можно использовать следующие функции (аналоги функций ksort и krsort в PHP):

function ksort(w) {
	var sArr = [], tArr = [], n = 0;

	for (i in w){
		tArr[n++] = i;
	}

	tArr = tArr.sort();
	for (var i=0, n = tArr.length; i a)});
	for (var i=0, n = tArr.length; i

Функция ksort сортирует массив (объект) в порядке возрастания, а krsort - в порядке убывания. Пример применения функций:

window.onload = function(){
	var data = {
		"d" : "last entry",
		"a" : "first entry",
		"b" : "second entry",
		"c" : "third entry"
	}

	data = ksort(data);
	for (var i in data) {
		document.write(i + ':' + data[i] + '
'); } // порядок ключей в массиве: a,b,c,d data = krsort(data); for (var i in data) { document.write(i + ':' + data[i] + '
'); } // порядок ключей в массиве: d,c,b,a }
Добавить в закладки:
Maklay.com - Большой каталог товаров для спорта и активного отдыха

Оставить комментарий

JSToolbox создан на основе WordPress