Neural Processing Mechanisms

    array-walker

    1.1.0 • Public • Published

    Array Walker

    Traverses a multi-dimensional array and fires off a callback with a value and its relationship.

    Example

    let walker = require('array-walker');
     
    // A single-dimensional array
    walker(['a', 'b'], (value, key) => console.log(value, key));
    // a, 0
    // b, 1
     
    // A two-dimensional array
    walker([['a', 'b'], ['c', 'd']], (value, x, y) => console.log(value, x, y));
    // a, 0, 0
    // b, 0, 1
    // c, 1, 0
    // d, 1, 1
     
    // A 12-dimensional array
    walker(
      [[[[[[[[[[[['a', 'b']]]]]], 'c']]]]]],
      (value, ...lineage) => console.log(value, ...lineage)
    );
    // a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    // b, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
    // c, 0, 0, 0, 0, 0, 1
     
     
    // With context
    walker(['a', 'b'], callbackWithContext, {example: "The Answer"});
    // The Answer, a, 0
    // The Answer, b, 1
     
    function callbackWithContext(value, key) {
      console.log(this.example, value, key);
    }

    Installation

    $ npm install array-walker
    

    API

    var walker = require('array-walker');

    walker(items, observationCallback, context, ...lineage)

    Type Data Type Name Description
    parameter *[] items The array to walk.
    parameter function observationCallback The function to call when a non-array value is found.
    parameter * The context passed to the callback
    parameter ...number [lineage] The parent indexes.
    returns undefined n/a n/a

    observationCallback(value, ...lineage)

    The observation callback is fired when a non-array value is found.

    Type Data Type Name Description
    this * this The context passed to the walker
    parameter !*[] value The value that was discovered.
    parameter ...number lineage The indexes in each dimension of the array.
    returns undefined n/a n/a

    Links

    Install

    npm i array-walker

    DownloadsWeekly Downloads

    0

    Version

    1.1.0

    License

    ISC

    Last publish

    Collaborators

    • lm3