export const ArrayExtensions = () => { if ([].equals === undefined) { // eslint-disable-next-line no-extend-native Array.prototype.equals = function (array, strict = true) { if (!array) return false; if (arguments.length === 1) strict = true; if (this.length !== array.length) return false; for (let i = 0; i < this.length; i++) { if (this[i] instanceof Array && array[i] instanceof Array) { if (!this[i].equals(array[i], strict)) return false; } else if (strict && this[i] !== array[i]) { return false; } else if (!strict) { return this.sort().equals(array.sort(), true); } } return true; }; } if ([].lastElement === undefined) { // eslint-disable-next-line no-extend-native Array.prototype.lastElement = function () { let instanceCheck = this; if (instanceCheck === undefined) { return undefined; } else { let instance = instanceCheck as []; return instance[instance.length - 1]; } }; } if ([].isEmpty === undefined) { // eslint-disable-next-line no-extend-native Array.prototype.isEmpty = function () { return this.length === 0; }; } };