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