/** * Callback for checking equality of c and d. * * @callback equalityCallback * @param {*} c * @param {*} d * @returns {boolean} */ /** * Returns true if the given arrays are equal. Optionally can pass an equality function. * @param {Array} a * @param {Array} b * @param {equalityCallback} callbackFunction - defaults to `c === d` * @returns {boolean} */ export function areArraysEqual(a, b, equalityFunction = (c, d) => { return c === d; }) { try { if (a.length !== b.length) return false; for (let i = 0; i < a.length; i++) { if (!equalityFunction(a[i], b[i])) return false; } } catch (ex) { return false; } return true; }