我有一个希望基于attr字符串类型的字段进行排序的对象列表。我尝试使用-
attr
-
list.sort(function (a, b) { return a.attr - b.attr })
但发现-在JavaScript 中似乎不适用于字符串。如何根据字符串类型的属性对对象列表进行排序?
使用String.prototype.localeCompare每个示例:
String.prototype.localeCompare
list.sort(function (a, b) { return ('' + a.attr).localeCompare(b.attr); })
我们强制a.attr为字符串以避免异常。自InternetExplorer6和Firefox1localeCompare开始受支持。您可能还会看到以下使用的不符合语言环境的代码:
localeCompare
if (item1.attr < item2.attr) return -1; if ( item1.attr > item2.attr) return 1; return 0;