2017-09-16 6 views
0

私は、オブジェクトのプロパティ値、labelプロパティとグループのプロパティのうちの2つを使用して、それをソートしたいこのES6ソート方式でオブジェクトのさまざまなプロパティ値を使用して配列内のオブジェクトを整理する方法は?

let arr = [ 
    {label: "Bob Bobson", value: 17345, group: "Applicants"} 
    {label: "Frank Frankson", value: 17347, group: "Applicants"} 
    {label: "Bill Billson", value: 17348, group: "Applicants"} 
    {label: "John Johnson", value: 1, group: "Caregivers"} 
    {label: "Aaron Aaronson", value: 15, group: "Caregivers"} 
    {label: "Jacob Jacobson", value: 172, group: "Clients"} 
    {label: "Eric Ericsson", value: 1441, group: "Clients"} 
    {label: "Doc Docson", value: 1147, group: "Doctors"} 
] 

のような配列を持っています。私は現在、結果が得られていません。私は最初にグループ別にソートしてからラベルを付けたいと思っています。

ここで私は以下のことを試しています。

arr.sort((a, b) => { a.label.toUpperCase() > b.label.toUpperCase()) ? 1 : -1 }); 

これを使用すると、同じ結果が返されますが、labelプロパティはソートされません。

+0

後に余分な終了括弧を持っている、 'アレイ#1 sort'は長い間存在してきました。 ES6にとっては新しいことではありません。 –

答えて

-1

あなたのソート関数は何も返しません。矢印関数は暗黙のreturn文を実行できますが、中括弧がない場合に限ります。したがって、中括弧を削除するか、return文を追加してください。また、あなたがb.label.toUpperCase() FYI

arr.sort((a, b) => a.label.toUpperCase() > b.label.toUpperCase() ? 1 : -1); 

arr.sort((a, b) => { 
    return a.label.toUpperCase() > b.label.toUpperCase() ? 1 : -1 
}); 
+0

これは、ラベルプロパティをソートし、グループプロパティをスクランブルすることになります。 – user3288619

+0

はい、私はソートが起こっていなかった理由をあなたに示していました。さらにソート条件を変更したい場合は、自由にお気軽に。 –

+0

ソートを続けるにはコマンドをチェーンするだけですか? – user3288619

関連する問題