summaryrefslogtreecommitdiffhomepage
path: root/packages/util/src/array.ts
blob: 91b923dee2a6d6f970c0c13a14f2278a56e865d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
export function same<T>(a: readonly T[] | undefined, b: readonly T[] | undefined) {
  if (a === b) return true
  if (!a || !b) return false
  if (a.length !== b.length) return false
  return a.every((x, i) => x === b[i])
}

export function findLast<T>(
  items: readonly T[],
  predicate: (item: T, index: number, items: readonly T[]) => boolean,
): T | undefined {
  for (let i = items.length - 1; i >= 0; i -= 1) {
    const item = items[i]
    if (predicate(item, i, items)) return item
  }
  return undefined
}