effect-io-ai

Package: effect
Module: Array

Array.sortWith

Sorts an array by a derived key using a mapping function and an Order for that key.

When to use

Use when you need to sort values by a derived key, such as a string length or object field, while keeping the original values.

Details

Equivalent to sort(Order.mapInput(order, f)), but more convenient.

Example (Sorting strings by length)

import { Array, Order } from "effect"

console.log(Array.sortWith(["aaa", "b", "cc"], (s) => s.length, Order.Number))
// ["b", "cc", "aaa"]

See

Signature

declare const sortWith: { <S extends Iterable<any>, B>(f: (a: ReadonlyArray.Infer<S>) => B, order: Order.Order<B>): (self: S) => ReadonlyArray.With<S, ReadonlyArray.Infer<S>>; <A, B>(self: NonEmptyReadonlyArray<A>, f: (a: A) => B, O: Order.Order<B>): NonEmptyArray<A>; <A, B>(self: Iterable<A>, f: (a: A) => B, order: Order.Order<B>): Array<A>; }

Source

Since v2.0.0