以内に、私はそうのような項目の配列を持っている:Javascriptのカスタムソート、グループ特定の項目下部にソートJavaScriptで
[
'title',
'firstname',
'company',
'[m]usr_phone'
'[m]usr_city'
]
私はすべてのように、カスタム列のソート機能を使用して、これを並べ替えるしたいと思います[m]以外のアイテムはすべてソートされ、すべての[m]アイテムはソートされ、ボトムにプッシュされます。
これを達成するために、
function(a, b) {
if (!a.indexOf('[m]') && b.indexOf('[m]') === 0
|| a.indexOf('[m]') && b.indexOf('[m]')) {
return -1;
}
if (a.indexOf('[m]') === 0 && !b.indexOf('[m]')) {
return 1;
}
return 0;
}
しかし、それが正しく働くようにすることはできませんでした。出力は次のようになります:
[
'company',
'firstname',
'title',
'[m]usr_city'
'[m]usr_phone'
]
ありがとうございました!
と思う(https://stackoverflow.com/q/14677060/1048572)[あなたは*ロケール*の比較を必要としない場合は、 'localeCompare'を使うべきではありません] 。 – Bergi
答えとしてこれを受け入れる、素晴らしい作品です。ロカールについての興味深いメモ。私はリストが小さく(20項目以上)小さいので騒がしいことはないが、リストがかなり成長したらパフォーマンスが問題になるかもしれない。あなたはここでそれを見ることができます。https://jsperf.com/operator-vs-localecompage/3 –
jsfiddle:https://jsfiddle.net/devsi/5x03s9h8/1/ –