1/** 2 * Callback for checking equality of c and d. 3 * 4 * @callback equalityCallback 5 * @param {*} c 6 * @param {*} d 7 * @returns {boolean} 8 */ 9 10/** 11 * Returns true if the given arrays are equal. Optionally can pass an equality function. 12 * @param {Array} a 13 * @param {Array} b 14 * @param {equalityCallback} callbackFunction - defaults to `c === d` 15 * @returns {boolean} 16 */ 17export function areArraysEqual(a, b, equalityFunction = (c, d) => { return c === d; }) { 18 try { 19 if (a.length !== b.length) 20 return false; 21 22 for (let i = 0; i < a.length; i++) { 23 if (!equalityFunction(a[i], b[i])) 24 return false; 25 } 26 } catch (ex) { 27 return false; 28 } 29 30 return true; 31} 32