Noncommital Premarital Mischief

    extra-array
    TypeScript icon, indicating that this package has built-in type declarations

    3.1.16 • Public • Published

    A collection of functions for working with Arrays.
    📦 Node.js, 🌐 Web, 📜 Files, 📰 Docs, 📘 Wiki.

    An Array is a collection of values, stored contiguously. This package includes common array functions related to querying about arrays, generating them, comparing one with another, finding their length, getting and setting elements, obtaining its properties, getting a part of it, rearranging elements in it, finding an element of a subset of elements in it, performing functional operations, manipulating it in various ways, combining together arrays or its elements, of performing set operations upon it.

    All functions except from*() take array as 1st parameter. Methods like swap() are pure and do not modify the array itself, while methods like swap$() do modify (update) the array itself. Some methods accept a map function for faster comparision (like unique). I find the map-approach beautiful, which I learned from Haskell's sortOn(). You can notice that I have followed Javascript naming scheme as far as possible. Some names are borrowed from Haskell, Python, Java, Processing.

    This package is available in Node.js and Web formats. The web format is exposed as extra_array standalone variable and can be loaded from jsDelivr CDN.

    Stability: Experimental.


    const array = require('extra-array');
    // import * as array from "extra-array";
    // import * as array from "https://unpkg.com/extra-array/index.mjs"; (deno)
    
    var x = [1, 2, 3];
    array.get(x, -1);
    // → 3
    
    var x = [1, 2, 3, 4];
    array.swap(x, 0, 1);
    // → [2, 1, 3, 4]
    
    var x = [1, 2, 3, 4];
    array.rotate(x, 1);
    // → [4, 1, 2, 3]
    
    [...array.permutations([1, 2, 3])];
    // → [
    //   [],          [ 1 ],
    //   [ 2 ],       [ 3 ],
    //   [ 1, 2 ],    [ 1, 3 ],
    //   [ 2, 1 ],    [ 2, 3 ],
    //   [ 3, 1 ],    [ 3, 2 ],
    //   [ 1, 2, 3 ], [ 1, 3, 2 ],
    //   [ 2, 1, 3 ], [ 2, 3, 1 ],
    //   [ 3, 1, 2 ], [ 3, 2, 1 ]
    // ]


    Index

    Property Description
    is Check if value is an array.
    keys List all indices.
    values List all values.
    entries List all index-value pairs.
    from Convert an iterable to array.
    from$ Convert an iterable to array.
    fromRange Generate array from given number range.
    fromInvocation Generate array from repeated function invocation.
    fromApplication Generate array from repeated function application.
    compare Compare two arrays (lexicographically).
    isEqual Check if two arrays are equal.
    index Get zero-based index for element in array.
    indexRange Get index range for part of array.
    length Find the length of an array.
    isEmpty Check if an array is empty.
    get Get value at index.
    getAll Get values at indices.
    getPath Get value at path in a nested array.
    hasPath Check if nested array has a path.
    set Set value at index.
    set$ Set value at index.
    setPath$ Set value at path in a nested array.
    swap Exchange two values.
    swap$ Exchange two values.
    remove Remove value at index.
    remove$ Remove value at index.
    removePath$ Remove value at path in a nested array.
    count Count values which satisfy a test.
    countAs Count occurrences of values.
    min Find smallest value.
    minEntry Find smallest entry.
    max Find largest value.
    maxEntry Find largest entry.
    range Find smallest and largest values.
    rangeEntries Find smallest and largest entries.
    slice Get part of an array.
    slice$ Get part of an array.
    head Get first value.
    last Get last value.
    tail Get values except first.
    init Get values except last.
    middle Get values from middle.
    take Keep first n values only.
    takeRight Keep last n values only.
    takeWhile Keep values from left, while a test passes.
    takeWhileRight Keep values from right, while a test passes.
    drop Discard first n values only.
    dropRight Discard last n values only.
    dropWhile Discard values from left, while a test passes.
    dropWhileRight Discard values from right, while a test passes.
    prefixes List all possible prefixes.
    suffixes List all possible suffixes.
    infixes List all possible infixes.
    subsequences List all possible subsequences.
    permutations List all possible permutations.
    randomValue Pick an arbitrary value.
    randomPrefix Pick an arbitrary prefix.
    randomSuffix Pick an arbitrary suffix.
    randomInfix Pick an arbitrary infix.
    randomSubsequence Pick an arbitrary subsequence.
    randomPermutation Pick an arbitrary permutation.
    randomPermutation$ Pick an arbitrary permutation.
    includes Check if array has a value.
    indexOf Find first index of a value.
    lastIndexOf Find last index of a value.
    find Find first value passing a test.
    findRight Find last value passing a test.
    scanWhile Scan from left, while a test passes.
    scanWhileRight Scan from right, while a test passes.
    scanUntil Scan from left, until a test passes.
    scanUntilRight Scan from right, until a test passes.
    search Find index of first value passing a test.
    searchRight Find index of last value passing a test.
    searchAll Find indices of values passing a test.
    searchValue Find first index of a value.
    searchValueRight Find last index of a value.
    searchValueAll Find indices of value.
    searchInfix Find first index of an infix.
    searchInfixRight Find last index of an infix.
    searchInfixAll Find indices of an infix.
    searchSubsequence Find first index of a subsequence.
    hasValue Check if array has a value.
    hasPrefix Check if array starts with a prefix.
    hasSuffix Check if array ends with a suffix.
    hasInfix Check if array contains an infix.
    hasSubsequence Check if array has a subsequence.
    hasPermutation Check if array has a permutation.
    forEach Call a function for each value.
    some Check if any value satisfies a test.
    every Check if all values satisfy a test.
    map Transform values of an array.
    map$ Transform values of an array.
    reduce Reduce values of array to a single value.
    reduceRight Reduce values from right, to a single value.
    filter Keep values which pass a test.
    filter$ Keep values which pass a test.
    filterAt Keep values at given indices.
    reject Discard values which pass a test.
    reject$ Discard values which pass a test.
    rejectAt Discard values at given indices.
    accumulate Produce accumulating values.
    flat Flatten nested array to given depth.
    flatMap Flatten nested array, based on map function.
    zip Combine values from arrays.
    fill Fill with given value.
    fill$ Fill with given value.
    sort Arrange values in order.
    sort$ Arrange values in order.
    push Add value to the end.
    push$ Add values to the end.
    pop Remove last value.
    pop$ Remove last value.
    shift Remove first value.
    shift$ Remove first value.
    unshift Add values to the start.
    unshift$ Add values to the start.
    copy Copy part of array to another.
    copy$ Copy part of array to another.
    copyWithin Copy part of array within.
    copyWithin$ Copy part of array within.
    moveWithin Move part of array within.
    moveWithin$ Move part of array within.
    splice Remove or replace existing values.
    splice$ Remove or replace existing values.
    split Break array considering test as separator.
    splitAt Break array considering indices as separator.
    cut Break array when test passes.
    cutRight Break array after test passes.
    cutAt Break array at given indices.
    cutAtRight Break array after given indices.
    group Keep similar values together and in order.
    partition Segregate values by test result.
    partitionAs Segregate values by similarity.
    chunk Break array into chunks of given size.
    cycle Obtain values that cycle through array.
    repeat Repeat an array given times.
    reverse Reverse the values.
    reverse$ Reverse the values.
    rotate Rotate values in array.
    rotate$ Rotate values in array.
    intersperse Place a separator between every value.
    interpolate Estimate new values between existing ones.
    intermix Place values of an array between another.
    interleave Place values from iterables alternately.
    concat Append values from arrays.
    concat$ Append values from arrays.
    join Join values together into a string.
    isUnique Check if there are no duplicate values.
    isDisjoint Check if arrays have no value in common.
    unique Remove duplicate values.
    union Obtain values present in any array.
    union$ Obtain values present in any array.
    intersection Obtain values present in both arrays.
    difference Obtain values not present in another array.
    symmetricDifference Obtain values not present in both arrays.
    cartesianProduct List cartesian product of arrays.



    ORG DOI Coverage Status Test Coverage Maintainability

    Keywords

    Install

    npm i extra-array

    DownloadsWeekly Downloads

    16,606

    Version

    3.1.16

    License

    MIT

    Unpacked Size

    144 kB

    Total Files

    6

    Last publish

    Collaborators

    • wolfram77