2

この質問の結果に基づいたこのフィドルがあります。これをさらに拡張して、2 番目の並べ替えを追加して、合計価格が同じ場合にコミッションの列を調べ、コミッションが最も高い人が販売価格の合計が同じになるようにしようとしています。これは可能ですか?また、手数料の列を小数点以下 2 桁にすることにも問題があります。私はやってみました

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

そして結果セクションで。

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

しかし、これはうまくいきませんでした。

4

1 に答える 1

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/

于 2012-08-06T08:50:30.097 に答える