JavaScriptの文字列配列カスタムソート

tsagbaaa111:

こんにちは私はJavaScriptでカスタム文字列のコンパレータ機能を実装しようとしています。私は彼らが残りはちょうどアルファベット順にソートされた状態で、他の前に必ずなりたいことを、いくつかの特別な値があります。Iは、アレイ(「非常に重要」「重要」、「」以下で重要)を有する場合、例えば、3つの特殊値(上記のような順序を有していなければならない)であります

    ["e","c","Less Important","d","Very Important","a",null,"Important","b","Very Important"]. 

ソートした後、配列があるべき(nullまたは未定義の値、最後で配置する必要があります場合)

    ["Very Important", "Very Important", "Important", "Less Important" "a","b","c","d","e",null]  

どのように私は上記の要件のためのコンパレータ機能を書き込むことができますか?(イムライブラリのコンパレータAPIを使用して、私は、配列が、0,1を返すJavaでのcompareToのようなコンパレータ(とロジックを実装する必要が並べ替えることはできませんので、-1)

どうもありがとう

ニーナショルツ:

あなたは出来る

  • 移動null下に値を、
  • 移動'Very Important'トップに文字列を、
  • 移動Important'先頭に文字列をし、
  • 残りの上昇を並べ替えます。

var array = ["Important", "e", "c", "d", "Very Important", "a", null, "b", "Very Important"];

array.sort((a, b) =>
    (a === null) - (b === null) ||
    (b === 'Very Important') - (a === 'Very Important') ||
    (b === 'Important') - (a === 'Important') ||
    a > b || -(a < b)
);

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=14068&siteId=1