--- layout: default ---

Function map #

Create a new matrix or array with the results of a callback function executed on each entry of a given matrix/array. For each entry of the input, the callback is invoked with three arguments: the value of the entry, the index at which that entry occurs, and the full matrix/array being traversed. Note that because the matrix/array might be multidimensional, the "index" argument is always an array of numbers giving the index in each dimension. This is true even for vectors: the "index" argument is an array of length 1, rather than simply a number.

Syntax #

```js math.map(x, callback) ```

Parameters #

Parameter | Type | Description --------- | ---- | ----------- `x` | Matrix | Array | The input to iterate on. `callback` | Function | The function to call (as described above) on each entry of the input

Returns #

Type | Description ---- | ----------- Matrix | array | Transformed map of x; always has the same type and shape as x

Throws #

Type | Description ---- | -----------

Examples #

```js math.map([1, 2, 3], function(value) { return value * value }) // returns [1, 4, 9] // The callback is normally called with three arguments: // callback(value, index, Array) // If you want to call with only one argument, use: math.map([1, 2, 3], x => math.format(x)) // returns ['1', '2', '3'] ```

See also #

[filter](filter.html), [forEach](forEach.html), [sort](sort.html)