首页 > 建站教程 > JS、jQ、TS >  js 根据对象属性对数组进行按字母排序正文

js 根据对象属性对数组进行按字母排序

今天,我爱模板网在做一个APP时,用接口获取了车子品牌的数据,需要做出类似手机通讯录的效果,点击品牌首字母,就能快速定位。这就要对返回的数据进行排序,返回数据格式有点类似下面:
[
    {"name": "D"},
    {"name": "G"},
    {"name": "A"},
    {"name": "Z"},
    {"name": "H"},
    {"name": "K"},
    {"name": "B"},
    {"name": "C"},
]
具体比这复杂,每个对象里面除了name外,还包括字母对应品牌的车型。

这里返回的数据就如上面的一样,是乱序的,要进行排序,对字母进行比较,可以用到localeCompare方法,而排序,可以使用js的sort方法,那么就好办了,如下:
var brands = [
    {"name": "D",},
    {"name": "G",},
    {"name": "A",},
    {"name": "Z",},
    {"name": "H",},
    {"name": "K",},
    {"name": "B",},
    {"name": "C",},
]
brands.sort(function(a,b){
    return a.name.localeCompare(b.name)
})
输入结果如下:
[
    {"name": "A"},
    {"name": "B"},
    {"name": "C"},
    {"name": "D"},
    {"name": "G"},
    {"name": "H"},
    {"name": "K"},
    {"name": "Z"},
]