7

重複の可能性:
JavaScriptのフィールド値による配列内のオブジェクトの並べ替え

 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を持っているので、質問があります。これをリストに追加したいと思います。つまり、ulli..距離が最も短いリストなどでリストを並べ替えるにはどうすればよいですか。

4

1 に答える 1

5

それはJSONではありません。これはすでにJavaScriptのオブジェクト配列であるため、を使用するだけ.sort()です。

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

0の数値変換が.Distance失敗した場合は、代用していることに注意してください。

.sort()JavaScript配列の並べ替えの詳細については、MDNドキュメントをお読みください。


$.each()要素を作成するには、イテレータを使用してソートされた配列をループできます。

var list = $("#mylist");

$.each(myData, function(i, obj) {
    $("<li>", {
         text: obj.Naam + ": Distance - " + obj.Distance
    }).appendTo(list);
});
于 2012-10-16T13:15:14.760 に答える