Skip to content

Commit 010451b

Browse files
committed
plotly#189 rewriting cateogory sorter: switching to switch
1 parent 9b01bcc commit 010451b

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

src/plots/cartesian/ordered_categories.js

+7-13
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
var d3 = require('d3');
1313

14-
function flattenUniqueSort(axisLetter, categorymode, data) {
14+
function flattenUniqueSort(axisLetter, sortFunction, data) {
1515
var traceLines = data.map(function(d) {return d[axisLetter];});
1616
var categoryMap = {}; // hashmap is O(1);
1717
var i, j, tracePoints, category;
@@ -25,11 +25,7 @@ function flattenUniqueSort(axisLetter, categorymode, data) {
2525
}
2626
}
2727
return Object.keys(categoryMap)
28-
.sort(({
29-
'category ascending': d3.ascending,
30-
'category descending': d3.descending
31-
})[categorymode]);
32-
28+
.sort(sortFunction);
3329
}
3430

3531

@@ -45,12 +41,10 @@ function flattenUniqueSort(axisLetter, categorymode, data) {
4541

4642
module.exports = function orderedCategories(axisLetter, categorymode, categorylist, data) {
4743

48-
if(categorymode === 'array') {
49-
// just return a copy of the specified array, if any
50-
return (Array.isArray(categorylist) ? categorylist : []).slice();
51-
} else if(['category ascending', 'category descending'].indexOf(categorymode) === -1) {
52-
return [].slice();
53-
} else {
54-
return flattenUniqueSort(axisLetter, categorymode, data);
44+
switch(categorymode) {
45+
case 'array': return (Array.isArray(categorylist) ? categorylist : []).slice();
46+
case 'category ascending': return flattenUniqueSort(axisLetter, d3.ascending, data);
47+
case 'category descending': return flattenUniqueSort(axisLetter, d3.descending, data);
48+
default: return [].slice();
5549
}
5650
};

0 commit comments

Comments
 (0)