sindresorhus/eslint-plugin-unicorn
GitHub で見るRule proposal: Enforce compare function style for `Array#sort()`
Open
#1,473 opened on 2021年8月8日
help wantednew rule
説明
I've seen many people just write the compare function too complicated, yes sometimes maybe it's more readable, but sometimes it's just too long.
Fail
array.sort((a, b) => {
if (a > b) {
return 1;
}
if (a < b) {
return -1;
}
return 0;
});
array.sort((a, b) => a > b ? 1 : -1);
array.sort((a, b) => {
if (a.foo > b.foo) {
return 1;
}
if (a.foo < b.foo) {
return -1;
}
if (a.bar > b.bar) {
return 1;
}
if (a.bar < b.bar) {
return -1;
}
return 0;
});
array.sort(() => Math.random() > 0. 5 ? 1 : -1);
Pass
array.sort((a, b) => a - b);
array.sort((a, b) => a.localeCompare(b));
array.sort((a, b) => a.foo - b.foo || a.bar - b.bar);
array.sort(() => Math.random() - 0.5);
This rule should not fixable unless we are sure they are numbers.