UNPKG

@thi.ng/arrays

Version:

Array / Arraylike utilities

15 lines (14 loc) 501 B
import { isFunction } from "@thi.ng/checks/is-function"; import { compare } from "@thi.ng/compare/compare"; import { assert } from "@thi.ng/errors/assert"; import { quickSort } from "./quicksort.js"; import { multiSwap } from "./swap.js"; const sortByCachedKey = (src, key, cmp = compare) => { const keys = isFunction(key) ? src.map(key) : key; assert(keys.length === src.length, `keys.length != src.length`); quickSort(keys, cmp, multiSwap(src)); return src; }; export { sortByCachedKey };