2016-02-01 22 views
-5

我想按這些對象的字段總和對數組中的對象進行排序。JavaScript下劃線 - 按數組對象中的字段總和排序

實施例:

var array = [ 
    {id: 1, T: 3, G: 3, K: 3}, 
    {id: 2, T: 5, G: 5, K: 5}, 
    {id: 3, T: 4, G: 4, K: 4} 
]; 

如何可以通過T,G,K的總和這些對象進行排序?謝謝

+1

你是怎麼做到這一點的? – shershen

+0

'Array.prototype.sort' – Oriol

+0

好吧,我做到了。 '_.sortBy(array,function(array){return array.T + array.G + array.K;})' – elzoy

回答

2

你可以使用排序函數中傳遞的比較函數來獲得你想要的結果。

示例代碼:codepen example link

var data = [ 
    {id: 1, T: 3, G: 3, K: 3}, 
    {id: 2, T: 5, G: 5, K: 5}, 
    {id: 3, T: 4, G: 4, K: 4} 
]; 

function sortData(){ 
    data.sort(function(a,b){ 
    return ((a.T+a.G+a.K)-(b.T+b.G+b.K)) 
    }); 
    console.log(data); 
} 
+0

嘿,謝謝你的幫助,但我必須用下劃線來做。 – elzoy

1

好球員,我做到了。

var array = [ 
    {id: 1, T: 3, G: 3, K: 3}, 
    {id: 2, T: 5, G: 5, K: 5}, 
    {id: 3, T: 4, G: 4, K: 4} 
]; 

var sortedArray = _.sortBy(array, function(array) { 
    return array.T + array.G + array.K; 
}); 

原諒我這個問題。我認爲我應該爲所有的缺點。

相關問題