sindresorhus/eslint-plugin-unicorn

Rule proposal: Enforce compare function style for `Array#sort()`

Geschlossen

#1.473 geöffnet am 08.08.2021

 (2 Kommentare) (3 Reaktionen) (0 zugewiesene Personen)JavaScript (468 Forks)user submission
help wantednew rule

Repository-Metriken

Stars
 (5.022 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 1T 16h) (399 gemergte PRs in 30 T)

Beschreibung

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.

Contributor Guide