You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
807 B
34 lines
807 B
export const strictEquality = (a, b) => a === b;
|
|
/**
|
|
* Determine if two cartesian coordinate offsets are equal
|
|
* @param offsetA
|
|
* @param offsetB
|
|
*/
|
|
export function areCoordsEqual(offsetA, offsetB) {
|
|
if (!offsetA && !offsetB) {
|
|
return true;
|
|
}
|
|
else if (!offsetA || !offsetB) {
|
|
return false;
|
|
}
|
|
else {
|
|
return offsetA.x === offsetB.x && offsetA.y === offsetB.y;
|
|
}
|
|
}
|
|
/**
|
|
* Determines if two arrays of items are equal
|
|
* @param a The first array of items
|
|
* @param b The second array of items
|
|
*/
|
|
export function areArraysEqual(a, b, isEqual = strictEquality) {
|
|
if (a.length !== b.length) {
|
|
return false;
|
|
}
|
|
for (let i = 0; i < a.length; ++i) {
|
|
if (!isEqual(a[i], b[i])) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|