1. ホーム
  2. javascript

[解決済み] JavaScriptで文字列をソートする方法

2022-03-21 05:03:24

質問

オブジェクトのリストがあり、あるフィールドに基づいて並べ替えたい。 attr の文字列型になります。を使ってみました。 -

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

- はJavaScriptで文字列を扱うことはできないようです。どうすれば、文字列型の属性に基づいてオブジェクトのリストをソートできるのでしょうか?

どのように解決するのですか?

使用方法 String.prototype.localeCompare を例にしてください。

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

例外を避けるため、a.attrを強制的に文字列にしています。 localeCompare がサポートされました。 Internet Explorer 6 以降 およびFirefox 1を使用しています。また、ロケールを尊重しない以下のようなコードが使用されているのを見かけることがあります。

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