【问题标题】:Javascript underscore - sort by sum of fields in array's objectJavascript下划线 - 按数组对象中的字段总和排序
【发布时间】:2016-05-10 09:02:06
【问题描述】:

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

例子:

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

【问题讨论】:

  • 你是如何做到这一点的?
  • Array.prototype.sort
  • 好吧,伙计们,我做到了。 _.sortBy(array, function(array) { return array.T+array.G+array.K; })

标签: javascript sorting underscore.js


【解决方案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;
});

请原谅我的这个问题。我认为所有的缺点都是我应得的。

【讨论】:

    【解决方案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);
    }
    

    【讨论】:

    • 嘿,谢谢你的帮助,但我必须使用下划线。
    猜你喜欢
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多