export function areEqual(arr1: ReadonlyArray, arr2: ReadonlyArray) { return arr1.length === arr2.length && arr1.every((value, index) => value === arr2[index]); } export function difference(arr1: ReadonlyArray, arr2: ReadonlyArray) { if (arr1.length !== arr2.length) return null; const changes = []; // eslint-disable-next-line unicorn/no-for-loop for (let i = 0; i < arr1.length; i += 1) { if (arr1[i] !== arr2[i]) { changes.push(i); } } return changes; } export function shift(arr: Array, n: number) { if (arr.length === 0) return arr; const shiftNumber = n % arr.length; if (shiftNumber === 0) return arr; return [...arr.slice(-shiftNumber, arr.length), ...arr.slice(0, -shiftNumber)]; }