0

我从 city.php 发送一个像这样的 json 字符串:

[{"name":"Boston","len":1,"cid":"292"},{"name":"Miami","len":1,"cid":"243"},{"name":"Washington","len":1,"cid":"36"},{"name":"Alabama","len":1,"cid":"5"},{"name":"New York","len":1,"cid":"435"}]

然后我在我的 citys.html 中检索它,如下所示:

var cities = {};
$.getJSON('http://mypage.com/json/cities.php', function(data){ 
    $.each(data, function (k, vali) {
        cities[vali.cid] = vali.name;
    });
});

我正在将 json 放入一个 javascript 对象中,它工作得非常完美,结果如下:

{ 
5: 'Alabama', 
36: 'Washington', 
243: 'Miamai', 
292: 'Boston',
435: 'New York'
};

这几乎没问题,但是......它不是按字母顺序排列的吗?

在进入 city{} 对象之前,我需要按名称对其进行排序...

我该如何做到这一点?

希望得到帮助并提前感谢...

4

1 回答 1

1

写一个比较函数

function compare(a,b) {
  if (a.name < b.name)
     return -1;
  if (a.name > b.name)
    return 1;
  return 0;
}

然后对您的数据进行排序

var cities = {};
$.getJSON('http://mypage.com/json/cities.php', function(data){ 
    data.sort(compare);
    $.each(data, function (k, vali) {
        cities[vali.cid] = vali.name;
    });
});
于 2013-07-24T20:55:13.517 回答