ts-data-forge
    Preparing search index...
    • Returns a new array with an element at the specified index updated by applying a function.

      Type Parameters

      • const Ar extends readonly unknown[]
      • const V = Ar[number]

      Parameters

      • array: Ar
      • index: ArgArrayIndex<Ar>
      • updater: (prev: Ar[number]) => V

      Returns IsFixedLengthList<Ar> extends true
          ? Readonly<{ [K in string | number | symbol]: V | Ar[K<K>] }>
          : Ar extends readonly [unknown, unknown]
              ? readonly [V | Ar<Ar>[number], V | Ar<Ar>[number]]
              : readonly (Ar[number] | V)[]

      const temperatures: number[] = [20, 21, 22];

      const increased = Arr.toUpdated(temperatures, 1, (value) => value + 5);
      const incrementLast = Arr.toUpdated<number>(
      2,
      (value) => value + 1,
      )(temperatures);

      assert.deepStrictEqual(increased, [20, 26, 22]);
      assert.deepStrictEqual(incrementLast, [20, 21, 23]);
    • Returns a new array with an element at the specified index updated by applying a function.

      Type Parameters

      • E
      • const V = E

      Parameters

      • index: ArgArr
      • updater: (prev: E) => V

      Returns <const Ar extends readonly E[]>(
          array: Ar,
      ) => IsFixedLengthList<Ar> extends true
          ? Readonly<{ [K in string | number | symbol]: V | Ar[K<K>] }>
          : Ar extends readonly [unknown, unknown]
              ? readonly [V | Ar<Ar>[number], V | Ar<Ar>[number]]
              : readonly (V | Ar[number])[]

      const temperatures: number[] = [20, 21, 22];

      const increased = Arr.toUpdated(temperatures, 1, (value) => value + 5);
      const incrementLast = Arr.toUpdated<number>(
      2,
      (value) => value + 1,
      )(temperatures);

      assert.deepStrictEqual(increased, [20, 26, 22]);
      assert.deepStrictEqual(incrementLast, [20, 21, 23]);