You could sort by the delta of b
and a
(for descending sorting) and take Number.MAX_VALUE
, for falsy values like zero.
This:
Number.MAX_VALUE - Number.MAX_VALUE
is equal to zero.
let array = [0, 1, 0, 2, 0, 3, 0, 4, 0, 5];
array.sort((a, b) => (b || Number.MAX_VALUE) - (a || Number.MAX_VALUE));
console.log(...array);