将辅助排序添加到数组输出

时间:2012-08-06 08:28:04

标签: jquery

我的this fiddle基于this question的结果。我试图进一步扩展这一点,以便我可以添加一个二级排序,这样如果总价格相同,那么它会查看佣金列,而拥有最高佣金的人将在总销售价格相等的位置上排名靠前。这可能吗?我也无法将commision列设为2位小数。我试过做

var commish = '.text((val.price / 3) + (val.sales*5))'; 

并在结果部分。

$("<td></td>");commish.toFixed(2).appendTo($tr);

但这没效果。

1 个答案:

答案 0 :(得分:9)

计算佣金并存储在对象中,以便您可以在排序和显示中使用它:

d.commission = d.price / 3 + d.sales * 5;

要对佣金二级进行排序,请检查价格是否相等,以及是否返回佣金的比较:

data.sort(function(a,b) {
  return a.price == b.price ? b.commission - a.commission : b.price - a.price;
});

当你在对象中获得佣金时,很容易将其格式化以便显示:

$("<td></td>").text(val.commission.toFixed(2)).appendTo($tr);

演示:http://jsfiddle.net/Guffa/VNSam/9/