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);