/*
This function takes a number, n, and returns an n*n nested array populated with the value null.
E.g. if n is 3, we want:
[
[null, null, null],
[null, null, null],
[null, null, null]
]
*/
How do I make a function thats create a new array and populates it?
edit: just got told to go look at Array.fill so Might be a redundant thread now lol
You can create an empty array of length n with new Array(n) and then fill it with nulls with something like myArray.fill(null)
To create an array and initialize it :
let arr = [];
use push or shift to add to the array (push adds to the back , and shift adds to the front )
nested for loops can be used to create nested arrays…
This will work:
function lineArr(n) {
return new Array(n).fill(null);
}
function squareArr(n) {
return lineArr(n).map(() => lineArr(n));
}
You might be tempted to do something like the following:
function squareArr(n) {
return lineArr(n).fill(lineArr(n));
}
However, this second approach won’t work, and will lead to weirdness like the following:
const myArr = squareArr(2);
myArr[1][1] = 1;
//myArr is now [[null, 1], [null, 1]]
This is because array.fill
fills by reference, rather than value, so the inner arrays are actually multiple references to the same array. The first approach doesn’t suffer from this problem.