ts-data-forge
    Preparing search index...
    • Finds the element with the maximum mapped value.

      Type Parameters

      • const Ar extends readonly unknown[]

      Parameters

      • array: Ar
      • comparatorValueMapper: (value: Ar[number]) => number

      Returns Ar extends readonly [unknown, unknown]
          ? Readonly<{ value: Ar<Ar>[number] }>
          : Optional<Ar[number]>

      const projects = [
      { id: 'a', stars: 10 },
      { id: 'b', stars: 30 },
      { id: 'c', stars: 20 },
      ];

      const mostStars = Arr.maxBy(projects, (project) => project.stars);
      const smallestStars = Arr.maxBy(
      projects,
      (project) => project.stars,
      (a, b) => b - a,
      );

      assert.deepStrictEqual(mostStars, Optional.some({ id: 'b', stars: 30 }));
      assert.deepStrictEqual(smallestStars, Optional.some({ id: 'a', stars: 10 }));
    • Finds the element with the maximum mapped value.

      Type Parameters

      • const Ar extends readonly unknown[]
      • V

      Parameters

      • array: Ar
      • comparatorValueMapper: (value: Ar[number]) => V
      • comparator: (x: V, y: V) => number

      Returns Ar extends readonly [unknown, unknown]
          ? Readonly<{ value: Ar<Ar>[number] }>
          : Optional<Ar[number]>

      const projects = [
      { id: 'a', stars: 10 },
      { id: 'b', stars: 30 },
      { id: 'c', stars: 20 },
      ];

      const mostStars = Arr.maxBy(projects, (project) => project.stars);
      const smallestStars = Arr.maxBy(
      projects,
      (project) => project.stars,
      (a, b) => b - a,
      );

      assert.deepStrictEqual(mostStars, Optional.some({ id: 'b', stars: 30 }));
      assert.deepStrictEqual(smallestStars, Optional.some({ id: 'a', stars: 10 }));