--- title: Identity matrix id: 5a23c84252665b21eecc7eb1 challengeType: 5 --- ## Description
An identity matrix is a square matrix of size \( n \times n \), where the diagonal elements are all 1s (ones), and all the other elements are all 0s (zeroes). \begin{bmatrix} 1 & 0 & 0 \cr 0 & 1 & 0 \cr 0 & 0 & 1 \cr \end{bmatrix} Write a function that takes a number 'n' as a parameter and returns the identity matrix of order n x n.
## Instructions
## Tests
```yml tests: - text: '''idMatrix should be a function.''' testString: 'assert(typeof idMatrix==''function'',''idMatrix should be a function.'');' - text: '''idMatrix(1) should return an array.''' testString: 'assert(Array.isArray(idMatrix(1)),''idMatrix(1) should return an array.'');' - text: '''idMatrix(1) should return ''+JSON.stringify(results[0])+''.''' testString: 'assert.deepEqual(idMatrix(1),results[0],''idMatrix(1) should return ''+JSON.stringify(results[0])+''.'');' - text: '''idMatrix(2) should return ''+JSON.stringify(results[1])+''.''' testString: 'assert.deepEqual(idMatrix(2),results[1],''idMatrix(2) should return ''+JSON.stringify(results[1])+''.'');' - text: '''idMatrix(3) should return ''+JSON.stringify(results[2])+''.''' testString: 'assert.deepEqual(idMatrix(3),results[2],''idMatrix(3) should return ''+JSON.stringify(results[2])+''.'');' - text: '''idMatrix(4) should return ''+JSON.stringify(results[3])+''.''' testString: 'assert.deepEqual(idMatrix(4),results[3],''idMatrix(4) should return ''+JSON.stringify(results[3])+''.'');' ```
## Challenge Seed
```js function idMatrix (n) { // Good luck! } ```
### After Test
```js console.info('after the test'); ```
## Solution
```js function idMatrix (n) { return Array.apply(null, new Array(n)).map(function (x, i, xs) { return xs.map(function (_, k) { return i === k ? 1 : 0; }) }); } ```