Javascript下划线 - 按数组对象中的字段总和排序

时间:2016-02-01 19:20:33

标签: javascript sorting underscore.js

我想通过这些对象的字段总和对数组中的对象进行排序。

示例:

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的总和对这些对象进行排序?感谢

2 个答案:

答案 0 :(得分:2)

您可以使用在数组的sort函数中传递的compare函数来实现您想要的结果。

示例代码: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);
}

答案 1 :(得分:2)

好的伙计们,我做到了。

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;
});

请原谅我这个问题。我认为我应该得到所有的弊端。