如何使用JavaScript按字段值对对象数组进行排序?

时间:2013-03-03 17:28:00

标签: javascript sorting

鉴于以下内容:

var array = [{"name":"zoe", "hotdogs":5},{"name":"april", "hotdogs":5},{"name":"ryan", "hot dogs":8}]

如何使用JavaScript按名称对数组元素进行排序?

var array = [{"name":"april", "hotdogs":5},{"name":"ryan", "hotdogs":8},{"name":"zoe", "hotdogs":5}]

有没有办法应用某些功能来排序对象?是否有帮助提高性能的辅助库?

我尝试了以下内容:

array.sort(function(a, b) {
    return a.name > b.name
});

但是当我尝试将其打印出来时,它似乎对生成的数组没有任何影响。

2 个答案:

答案 0 :(得分:1)

使用.localeCompare()

array.sort(function(a, b) {
    return a.name.localeCompare(b.name)
});

答案 1 :(得分:0)

该函数应返回整数,如C strcmp,所以:

if a.name > b.name {
  return 1;
} else if ( a.name == b.name) {
  return 0;
}
return -1