我有这个基于这个问题的结果的小提琴。我正在尝试进一步扩展它,以便我可以添加二级排序,这样如果总价相同,它就会查看佣金列,并且佣金最高的人将在总售价相等的地方排在首位。这可能吗?我也无法将佣金列设为小数点后 2 位。我试过做
var commish = '.text((val.price / 3) + (val.sales*5))';
并在结果部分。
$("<td></td>");commish.toFixed(2).appendTo($tr);
但这并没有奏效。
计算佣金并存储在对象中,以便您可以在排序和显示中使用它:
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/