JSFiddle - React, Tailwind, and code Playground
JavaScript
Object.defineProperty(Boolean.prototype, "equals", {
enumerable: false,
configurable: true,
value: function (c) {
return this == c;
}
});
Object.defineProperty(Number.prototype, "equals", {
enumerable: false,
configurable: true,
value: function (c) {
if (Number.prototype.equals.NaN == true && isNaN(this) && c != c) return true;
return this == c;
}
});
Number.prototype.equals.NaN = false; //Set to true to return true for NaN == NaN
Object.defineProperty(String.prototype, "equals", {
enumerable: false,
configurable: true,
value:Boolean.prototype.equals
});
Object.defineProperty(Object.prototype, "equals", {
enumerable: false,
configurable: true,
value: function (c,reference) {
if (true === reference)
return this === c;
if (typeof this != typeof c) {
return false;
}
var d = [Object.keys(this), Object.keys(c)],
f = d[0].length;
if (f !== d[1].length) {
return false;
}
for (var e = 0; e < f; e++) {
if (d[0][e] != d[1][e] || !this[d[0][e]].equals(c[d[1][e]])) {
return false;
}
}
return true;
}
});
Object.defineProperty(Array.prototype, "equals", {
enumerable: false,
configurable: true,
value: function (c,reference) {
var d = this.length;
if (d != c.length) {
return false;
}
var f = Array.prototype.equals.sort(this.concat());
c = Array.prototype.equals.sort(c.concat(),f)
if (reference){
for (var e = 0; e < d; e++) {
if (f[e] != c[e] && !(Array.prototype.equals.NaN && f[e] != f[e] && c[e] != c[e])) {
...