jQuery using.Map构建按字母顺序排列的数组

时间:2014-02-26 21:00:29

标签: javascript jquery

嘿我做这样的事情:

temp = $.map(response, function(item) {
            return {
                label: item.name,
                value: item.id
            };
        });
        temp.unshift({label: "", value: 0});temp

有没有办法确保返回按字母顺序构建?

2 个答案:

答案 0 :(得分:1)

您可以在创建地图之前始终对response进行排序,或者只是对生成的映射数组进行排序。

var response = [{ name: 'z', id: 1 }, { name: 'a', id: 2 }];

response = response.sort(function (a, b) {
    return a.name < b.name? -1 : +(a.name > b.name);
});

response[0].name; //a

请注意,+(a.name > b.name)用于在相等时明确返回0,在{更高时1时更新,因为这是sort函数所期望的内容。

答案 1 :(得分:0)

temp.sort(function(a, b) {
  return a.value > b.value ? 1 : -1;
});

var result = temp.map(function(e){
    return list[e.index]
});