Sortowanie obiektu JAVASCRIPT

0

witam
mam nietypowy obiekt z różnymi kluczami

{4:"asfa",7:"tghrft",1:"bddrgd",9:"zszsd"}

chciałbym posortować żeby otrzymać taki obiekt:

{4:"asfa",1:"bddrgd",7:"tghrft",9:"zszsd"}

jakieś podpowiedzi ? próbowałem sortowanie bąbelkowe ale ono działa na tablicach...

0

Możesz sortować jak w załączonym powyżej linku lub użyć biblioteki, polecam http://underscorejs.org/#sortBy

0

problem w tym że nie mogę posortować takiej tablicy:

var testObj1 = {"01":"dfsd","05":"sdfsd","02":"dgfgdf","09":"uikui","03":"tyyht","08":"cvbc","04":"bvvb","06":"zxczx","11":"fghfg","07":"nmnm","10":"aaqqqqq","12":"pppp"};

ps. w cudzyslowie bo to output z JSON

1

Przyjrzałam się temu obiektowi i przede wszystkim, to nie jest poprawna struktura JSON.

Sugeruje, abyś użył takiej struktury:

 
var testObj1 = [
{"id":1,"name": "dfsd"},
{"id":9,"name": "dfsd"},
{"id":3,"name": "tyyht"},
{"id":8,"name": "cvbc"}
/...
]

//sortowanie
testObj1.sort(function(a,b){
	return a.id - b.id;
});

Jeśli chodzi o sortowanie obiektu, który masz, to tablice kluczy musisz posortować wg. zdefiniowanej funkcji:

for (var k in testObj1) {
    keys.push(+k);
}

function sortNumber(a,b) {
    return a - b;
}

keys.sort(sortNumber);

//posortowane wartosci
for (var i = 0; i < keys.length; i++) {
  var k = keys[i];
  console.log(k + ':' + myObj[k.toString()]);
}
0

Temat do zamknięcia. Dzięki za pomoc, obiekt z kluczami typu 01 02 03 nigdy nie da się posortować w JS, rozwiązałem to przekształcając w tablice i później posortowałem. W widoku wyświetlałem prosto z tablicy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1