2016-10-31 7 views
1

私はしばらくこの状態にいましたので、他の誰かがそれに遭遇した場合に備えて、私は問題とその回答を投稿します。orderByを使う:数字の配列をソートし、下に文字列の値を入れるには?

私が降順に継続して、次の配列をソートしようとしていた

{ 
    0: 
    { 
    first_name: "Tom" 
    duration: "00:50" 
    } 
    1: 
    { 
    first_name: "Bob" 
    duration: "01:30" 
    } 
    2: 
    { 
    first_name: "Dan" 
    duration: "< 1 min" 
    } 
} 

正しい順序がボブでなければなりません - トム - ダン、AngularJSは、私はダンを得たORDERBY orderBy($scope.students,'duration',true);フィルタリング使っしかし - ボブ - トム

+0

文字列は何ですか? –

+0

@AnikIslamAbhi Anikについて質問していることを明確にすることはできますか –

答えて

-1

私はその周りを得た方法は、一意の文字列と実際の数を区別う機能を書き込むことにより、次のとおりです。

表現として
var orderByExp = function(student) { 
    if(student.duration.match(/\d\d:\d\d/)) { 
     return student.duration; 
    } 
    else{ 
     return ""; 
    } 
} 

、その関数を渡す:

orderBy($scope.students,orderByExp,true);

そのようにすれば、「xx:xx」以外のものがあれば、それは空の文字列として扱われます。

関連する問題