次のコードを使用して、ヘッダー行をトリガーとしてテーブルの列を並べ替えています。
var tr = d3.selectAll("tbody tr");
d3.selectAll("thead th").data(forsort).on("click", function(k) {
tr.sort(function(a,b){
return a[k] - b[k]; });
});
問題は、同じ値のセルがかなりあることです。初めてテーブルをクリックして並べ替えると、期待どおりの結果が得られます。ただし、もう一度クリックすると、同じ値のセル(並べ替えに使用されている列から)が含まれている行が再配置されます。
列がすでに並べ替えられているかどうかを確認する方法があるかどうか、trueの場合は繰り返し並べ替えを許可しないかどうか疑問に思いました。代替ソリューションも歓迎します。
ありがとう!