sindresorhus/eslint-plugin-unicorn
在 GitHub 查看Rule proposal: Enforce compare function style for `Array#sort()`
Open
#1,473 创建于 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.