JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 10
  • Score
    100M100P100Q50370F
  • License MIT

maps multidimensional array indices to monodimensional array index

Package Exports

  • multidim-array-index

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (multidim-array-index) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

multidim-array-index

maps multidimensional array indices to monodimensional array index

NPM version Build Status Dependency Status JavaScript Style Guide

Table Of Contents:

Installation

With npm do

npm install multidim-array-index

Examples

All code in the examples below is intended to be contained into a single file.

var multiDimArrayIndex = require('multidim-array-index')

1th-order

In the monodimensional case, it just returns the index itself.

var i3 = multiDimArrayIndex.bind(null, [3])

i3([0]) // 0
i3([1]) // 1
i3([2]) // 2

2th-order

For a two dimensional case, for instance a matrix, it is equivalent to the function (i, j, numCols) => j + i * numCols

var i2x3 = multiDimArrayIndex.bind(null, [2, 3])

i2x3([0, 0]) // 0
i2x3([0, 1]) // 1
i2x3([0, 2]) // 2
i2x3([1, 0]) // 3
i2x3([1, 1]) // 4
i2x3([1, 2]) // 5

3th-order

var i2x3x4 = multiDimArrayIndex.bind(null, [2, 2, 2])

i2x3x4([0, 0, 0]) // 0
i2x3x4([0, 0, 1]) // 1
i2x3x4([0, 0, 2]) // 2
i2x3x4([0, 0, 3]) // 3
i2x3x4([0, 1, 0]) // 4
i2x3x4([0, 1, 1]) // 5
i2x3x4([0, 1, 2]) // 6
i2x3x4([0, 1, 3]) // 7
i2x3x4([1, 0, 0]) // 8
i2x3x4([1, 0, 1]) // 9
i2x3x4([1, 0, 2]) // 10
i2x3x4([1, 0, 3]) // 11
i2x3x4([1, 1, 0]) // 12
i2x3x4([1, 1, 1]) // 13
i2x3x4([1, 1, 2]) // 14
i2x3x4([1, 1, 3]) // 15

i2x2x2([0, 0, 0]) //// 0
i2x2x2([0, 0, 1]) // 1
i2x2x2([0, 1, 0]) // 2
i2x2x2([0, 1, 1]) // 3
i2x2x2([1, 0, 0]) // 4
i2x2x2([1, 0, 1]) // 5
i2x2x2([1, 1, 0]) // 6
i2x2x2([1, 1, 1]) // 7

API

multiDimArrayIndex(dimension, indices)

  • @param {Array} dimensions defines the shape of the multi dimensional array
  • @param {Array} indices to transform
  • @returns {Number} index of an equivalent mono dimensional array

Given dimensions d_1, d_2, d_3 .. d_n and indices i_1, i_2, i_3 .. i_n index is computed by formula

index = i_n + i_(n-1) * d_n + i_(n-2) * d_n * d_(n-1) + ... + i_2 * d_n * d_(n-1) * ... * d_3 + i_1 * d_n * ... * d_2

multiDimArrayIndex.error

An object exposing the following error messages:

  • outOfBoundIndex

For example, the following snippets will throw

// outOfBoundIndex

i3([11])
i2x3x4([2, 3, 5])

License

MIT