1. ホーム
  2. javascript

[解決済み] Javascriptで配列をfirstname(アルファベット)でソートする [重複].

2022-03-20 05:58:19

質問

私は、JavaScriptを使用してfirstnameでソートする必要がある配列(配列内の1つのオブジェクトについては以下を参照してください)を得ました。 どうすればいいのでしょうか?

var user = {
   bio: null,
   email:  "[email protected]",
   firstname: "Anna",
   id: 318,
   lastAvatar: null,
   lastMessage: null,
   lastname: "Nickson",
   nickname: "anny"
};

解決方法は?

という配列があるとします。 users . を使用することができます。 users.sort で、2つの引数を取って比較する関数(comparator)を渡します。

を返さなければならない。

  • 第一引数が第二引数より小さい場合、何か負の値 (結果の配列で第二引数の前に置かれるべき) を返します。
  • 最初の引数が大きい場合、正の値 (2番目の引数の後に配置されます)
  • これら2つの要素が等しい場合は0。

この例では、2つの要素が ab を比較したいのです。 a.firstnameb.firstname

users.sort(function(a, b){
    if(a.firstname < b.firstname) { return -1; }
    if(a.firstname > b.firstname) { return 1; }
    return 0;
})

このコードはどんなタイプでも使えるようになります。

なお、実際の生活では、文字列を比較する際に、大文字小文字を無視したり、発音記号を正しく並べ替えたり、ßのような奇妙な記号を使用したいことがよくあります。 localeCompare . わかりやすくするために、他の回答を参照してください。