---
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)