2017-07-28 82 views
0

我正在研究一個函數,將在中期評分等級遞增下對我的列表進行排序。所以,我想在FF代碼:排序在下劃線js

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

因此,使用elem.midterm_score它可以在這裏看到沒有通過中期評分排序名單。

enter image description here

我希望它是90,80,70等類似的東西。任何想法我錯過了什麼?請幫忙!

回答

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

按照docs

返回由 一個(穩定地)排序的列表的拷貝,在升序排列通過iteratee運行的每個值的結果。 iteratee也可能是 是要排序的屬性的字符串名稱(例如,長度)。

這可能是你過於複雜的事情。排序根據如midterm_score屬性的值的列表,只需把它作爲第二個參數,因爲這樣的:

sortBy(students, 'midterm_score');

使用功能爲iteree是變換你的數據,這確實在這裏似乎沒有必要。您需要使用return命令(根據文檔)明確地使用這樣的函數返回轉換後的結果。