一尘不染

如何在JavaScript中对字符串排序

javascript

我有一个希望基于attr字符串类型的字段进行排序的对象列表。我尝试使用-

list.sort(function (a, b) {
    return a.attr - b.attr
})

但发现-在JavaScript 中似乎不适用于字符串。如何根据字符串类型的属性对对象列表进行排序?


阅读 346

收藏
2020-04-25

共1个答案

一尘不染

使用String.prototype.localeCompare每个示例:

list.sort(function (a, b) {
    return ('' + a.attr).localeCompare(b.attr);
})

我们强制a.attr为字符串以避免异常。自InternetExplorer6和Firefox1localeCompare开始受支持。您可能还会看到以下使用的不符合语言环境的代码:

if (item1.attr < item2.attr)
  return -1;
if ( item1.attr > item2.attr)
  return 1;
return 0;
2020-04-25