2017-07-28 19 views
0

私のリストを中期的なスコアグレードで昇順にソートする機能に取り組んでいます。だからここに見ることができるようelem.midterm_scoreはそれが中期スコアを経由して私のリストをソートしていない使用してアンダースコアで並べ替える

if(score === 'Midterm Score'){ 
     _.each(students, function(elem, index, list){ 
      _.sortBy(students, function(elem){ 
       console.log(elem.midterm_score); 
      }); 
      }); 
     } 

:だから私は、ffのコードを試してみました。

enter image description here

私はそれがそのような何かに90、80、70及びそうであることを期待しています。私は何が不足しているか考えていますか?助けてください! docsによれば

答えて

2

間違った方法でsortByメソッドを使用しています。それをチェックしてくださいdocs

// First of all we need students 
var students = [ 
    {name: 'a', midterm_score: 60}, 
    {name: 'b', midterm_score: 70}, 
    {name: 'c', midterm_score: 40} 
]; 

// Sort by midterm score and assign to students variable 
students = _.sortBy(students, 'midterm_score'); 

// print array in each loop 
_.each(students, function(el) { 
    console.log(el); 
}); 
+0

ええ、私はこれが動作すると思います。私はそれぞれの場所を切り替えて、並べ替えられた項目を変数に入れておく必要があります。 –

0

は(安定) によってiterateeを通じて各値の実行結果を昇順でランク付けされたリストのコピーを、ソート返します。 iteratee はソートするプロパティの文字列名(長さなど)にすることもできます。

あなたは物事を過度に複製している可能性があります。プロパティなどmidterm_scoreの値に基づいてリストをソートするには、単にのような、2番目の引数として渡し:

sortBy(students, 'midterm_score');

の機能を使用してitereeがあなたのデータに変換するためにあるように、していますここでは必要ないようです。そのような関数では、returnコマンドを明示的に(ドキュメントに従って)使用して、変換結果を返すことが期待されます。

関連する問題