JSFiddle - React, Tailwind, and code Playground

JavaScript

var sort = (function () {
    var tmp;

    function sorter(a, b) {
        var types = [typeof a, typeof b];
        if (types[0] === "object" && types[1] === "object") {
            return tmp.indexOf(a) - tmp.indexOf(b);
        }
        if (types[0] == "object") {
            return 1;
        }
        if (types[1] == "object") {
            return -1;
        }
        return a > b ? 1 : a < b ? -1 : 0;
    }


    return function (el) {
        if (tmp) {
            for (var i = 0; i < el.length; i++) {
                el[i] = tmp[i];
            }
            return el;
        }
        tmp = [].slice.call(el);
        return tmp = el.sort(sorter);
    };

})();




var x = { a: 1 };
var y = { a: 2 };

var a = [1, x, 2, 3, y, 4, x]
var b = [1, y, 3, 4, x, x, 2]


sort(a)
sort(b)
console.log("Consistent", a, b);