2017-11-10 9 views
1

私は、次のクラスソート

export class Tests { 
    id: number; 
    name: string; 
    createdAt: any; 
    succress: boolean; 

    constructor(id: number, name: string, createdAt: any, success: boolean) { 
    this.id = id; 
    this.name = name; 
    this.createdAt = createdAt; 
    this.succress = success; 
    } 
} 

の配列を持っていると私は、(上部と下部に真の偽の)成功の値で、それをソートしたいです。どうやってやるの?

this.tests.sort((a, b) => { 
    if (a.succress) { 
     return -1; 
    } 

    if (b.succress) { 
     return 1; 
    } 

    return 0; 
}); 

答えて

1

をやっていない

_.sortBy(this.users,['succress']) 

LIVE DEMO

+0

ここでつべこべが、===は-1を返し、bがあるときに、[今すぐ1を返す場合は 'true' ===は0を返すB''場合には、最初のチェックに、より正確ではないであろうそれは1または-1を返します。これは間違っています。 – HMR

0

あなたは簡単にlodash sortBy機能を使って、これを達成することができます:私は

this.tests.sort((a,b)=> b.succress - a.succress); 

を試みた。しかし、次のようにあなたがブール値で並べ替えることができます何でも

0
たぶん

このような何か?

[false,true,false,true] 
.sort(
    (a,b)=> 
    (a===b)?0 
    :(a===true)?1:-1)