Package: effect
Module: Array
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
sort for sorting with an Order that compares the elements directlysortBy for sorting with multiple Orders applied in sequenceSignature
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>; }
Since v2.0.0