JSFiddle - React, Tailwind, and code Playground
JavaScript
var input = [3,0,2,-1,0,-3];
var copy = input.slice(0);
input.sort(function(a, b) {
var sign_a = Math.sign(a),
sign_b = Math.sign(b);
if (sign_a != sign_b) {
return sign_a - sign_b;
}
return copy.indexOf(a) - copy.indexOf(b);
});
console.log(input);