1

鉴于以下情况:

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
});

但是当我尝试将其打印出来时,它似乎对结果数组没有影响。

4

2 回答 2

1

使用.localeCompare().

array.sort(function(a, b) {
    return a.name.localeCompare(b.name)
});
于 2013-03-03T17:36:35.347 回答
0

该函数应该返回整数,就像 C strcmp 一样,所以这样做:

if a.name > b.name {
  return 1;
} else if ( a.name == b.name) {
  return 0;
}
return -1
于 2013-03-03T17:31:46.947 回答