2012-10-16 3 views
1

가능한 중복 :
Sorting objects in an array by a field value in JavaScriptjson 목록을 정렬 하시겠습니까?

var myData = [ 
        {"Identifier":1,"Naam":"Van Der Valk","Adres":"Europaweg 218","Postcode":"1238AC","Plaats":"Zoetermeer","Longitude":"4.48822","Latitude":"52.06258", "Status":"Laadpunten Beschikbaar", "lunch":"true", "diner":"true", "meet":"true", "wifi":"true", "Distance": "10.1"}, 
        {"Identifier":2,"Naam":"Meram place","Adres":"NOT Given 1","Postcode":"0000LL","Plaats":"Rotterdam","Longitude":"4.48178","Latitude":"51.92422", "lunch":"false", "Distance": "181"}, 
        {"Identifier":3,"Naam":"Station Zwolle","Adres":"NOT Given 6","Postcode":"0000LL","Plaats":"Zwolle","Longitude":"6.08302","Latitude":"52.51677", "lunch":"false", "Distance": "5.1"}, 
        {"Identifier":4,"Naam":"Pompstation Shell","Adres":"NOT Given 1","Postcode":"0000LL","Plaats":"Den Haag","Longitude":"4.30070","Latitude":"52.07050", "lunch":"false"}, 
        {"Identifier":5,"Naam":"Amsterdam Arena","Adres":"NOT Given 218","Postcode":"0000LL","Plaats":"Amsterdam","Longitude":"4.89517","Latitude":"52.37022", "lunch":"true", "diner":"true", "wifi":"true", "meet":"true", "Distance": "34.2"} 
        ]; 

나는 ...... 나는 위의 JSON이 주어진 질문이와 나는 목록 즉 UL 리튬이를 추가 할 .. 가장 낮은 거리 등으로 주문 된 목록을 어떻게 얻을 수 있습니까?

+0

? 목록 형식화 된 방법? – skovalyov

답변

3

JSON이 아닙니다. 이미 객체의 자바 스크립트 배열이므로 .sort() 만 사용하면됩니다. .Distance의 숫자 변환이 실패하면 내가 0을 대체하고있어

myData.sort(function(a, b) { 
    return (+a.Distance || 0) - (+b.Distance || 0); 
}); 

참고.

.sort()에 대한 MDN 문서를 읽고 JavaScript 배열 정렬에 대해 자세히 알아보십시오.


요소를 만들려면 $.each() 이터레이터를 사용하여 정렬 된 배열을 반복 할 수 있습니다.

var list = $("#mylist"); 

$.each(myData, function(i, obj) { 
    $("<li>", { 
     text: obj.Naam + ": Distance - " + obj.Distance 
    }).appendTo(list); 
}); 
관련 문제