UNPKG

@extra-array/is-equal

Version:

Checks if two arrays are equal.

25 lines (24 loc) 623 B
'use strict'; function id(v) { return v; } function cmp(a, b) { return a < b ? -1 : (a > b ? 1 : 0); } function compare(x, y, fc = null, fm = null) { var fc = fc || cmp, fm = fm || id; var X = x.length, Y = y.length; for (var i = 0, I = Math.min(X, Y); i < I; i++) { var u1 = fm(x[i], i, x); var v1 = fm(y[i], i, y); var c = fc(u1, v1); if (c !== 0) return c; } return Math.sign(X - Y); } function isEqual(x, y, fc = null, fm = null) { var X = x.length, Y = y.length; return X === Y && compare(x, y, fc, fm) === 0; } module.exports = isEqual;