-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArray.ts
More file actions
17 lines (16 loc) · 611 Bytes
/
Array.ts
File metadata and controls
17 lines (16 loc) · 611 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Compares to Array<T> objects for equality, ignoring order
export function scrambledEqual<T>(array1: readonly T[], array2: readonly T[]) {
const sortedArray1 = sort(array1);
const sortedArray2 = sort(array2);
return sequenceEqual(sortedArray1, sortedArray2);
function sort(array: readonly T[]) {
return array.slice().sort();
}
}
// Compares to Array<T> objects for equality in same order
export function sequenceEqual<T>(array1: readonly T[], array2: readonly T[]) {
if (array1.length !== array2.length) {
return false;
}
return array1.every((val, index) => val === array2[index]);
}