const sameCase = (a, b) => {
const isChar = arg => typeof arg === 'string' && arg.length === 1;
if (!isChar(a) || !isChar(b)) {
return -1;
}
const cases = str => [ str.toUpperCase(), str.toLowerCase() ];
const [au, al] = cases(a);
const [bu, bl] = cases(b);
if (au === al || bu === bl) {
return -1;
}
const isAUp = au === a;
const isBUp = bu === b;
return isAUp === isBUp ? 1 : 0;
}
arr.sort(_ => -1)
будет реверсить массив, а в FireFox он не изменится. Зато в FireFox реверсится будет при возврате положительного числа: arr.sort(_ => 1)
, что в Chrome, вероятно, никак не изменит массив.a
и b
значение. Для одних и тех же a
и b
всегда одно и то же. Иначе результат сортировки непредсказуем. Нее, тут они вообще игнорируются же. Не участвуют, не влияют на результат, который постоянен:a
здесь 1, аb
здесь 2, соответственно порядок должен быть 1, 2, а не 2, 1
-0.5
arr.sort((a, b) => {
console.log(a, b, arr.join(','));
return -0.5;
})
p.s. а нет, массив выводится в начальном виде каждый раз. proxy_pass
.map $scheme $upstream_main {
default app;
}
upstream bundle {
server $upstream_main;
server fallback backup;
}
setTimeout(
console.log,
1000,
'я',
'буду',
'читать',
'документацию',
'https://developer.mozilla.org/en-US/docs/Web/API/setTimeout'
);