A set of functions for working with arrays, often necessary for working with state, but absent in lodash.
npm i array-utils-ts
yarn add array-utils-ts
import { filterNullable } from "array-utils-ts" filterNullable([1, null, 2, undefined]) // -> [1, 2]
import { filterEmpty } from "array-utils-ts" filterEmpty([1, null, 2, undefined, 3, "", "a"]) // -> [1, 2, 3, "a"]
import { isUniq } from "array-utils-ts" isUniq([1, 2, 3]) // -> true isUniq([1, 2, 1]) // -> false
import { hasEmpty } from "array-utils-ts" hasEmpty(["a", "b", "c"]) // -> false hasEmpty(["a", "", "c"]) // -> true hasEmpty(["a", undefined, "c"]) // -> true
For example useful in <select>
component
import { toggleItem } from "array-utils-ts" toggleItem([1, 2, 3], 4) // -> [1, 2, 3, 4] toggleItem([1, 2, 3], 3) // -> [1, 2]
import { updateByKey } from "array-utils-ts" // prettier-ignore const arr1 = [{ id: 1, v: 1 }, { id: 2, v: 1 }] const arr2 = updateByKey(arr1, "id", { id: 1, v: 2 }) // -> [{ id: 1, v: 2 }, { id: 2, v: 1 }] // arr1 !== arr2 const arr3 = updateByKey(arr2, "id", { id: 3, v: 1 }) // -> [{ id: 1, v: 2 }, { id: 2, v: 1 }] // arr2 === arr3 // note: item not found, nothing changed
import { upsertByKey } from "array-utils-ts" // prettier-ignore const arr1 = [{ id: 1, v: 1 }, { id: 2, v: 1 }] const arr2 = upsertByKey(arr1, "id", { id: 1, v: 2 }) // -> [{ id: 1, v: 2 }, { id: 2, v: 1 }] // arr1 !== arr2 const arr3 = upsertByKey(arr2, "id", { id: 3, v: 1 }) // -> [{ id: 1, v: 2 }, { id: 2, v: 1 }, { id: 3, v: 1 }] // arr2 !== arr3
import { toggleByKey } from "array-utils-ts" // prettier-ignore const arr1 = [{ id: 1, v: 1 }, { id: 2, v: 1 }] const arr2 = toggleByKey(arr1, "id", { id: 1, v: 2 }) // -> [{ id: 2, v: 1 }]; arr1 !== arr2 const arr3 = toggleByKey(arr2, "id", { id: 3, v: 1 }) // -> [{ id: 2, v: 1 }, { id: 3, v: 1 }]; arr2 !== arr3
Check if given object is first in collection by some key.
import { isFirstByKey } from "array-utils-ts" const arr = [{ id: 1 }, { id: 2 }, { id: 3 }] isFirstByKey(arr, "id", { id: 1 }) // -> true isFirstByKey(arr, "id", { id: 2 }) // -> false isFirstByKey(arr, "id", { id: 3 }) // -> false
Check if given object is last in collection by some key.
import { isLastByKey } from "array-utils-ts" const arr = [{ id: 1 }, { id: 2 }, { id: 3 }] isLastByKey(arr, "id", { id: 1 }) // -> false isLastByKey(arr, "id", { id: 2 }) // -> false isLastByKey(arr, "id", { id: 3 }) // -> true
import { enumerate } from "array-utils-ts" const arr = ["a", "b", "c"] enumerate(arr) // -> [[0, "a"], [1, "b"], [2, "c"]] enumerate(arr, 1) // -> [[1, "a"], [2, "b"], [3, "c"]]