Creating a 2D array with specific length and width

arrays, javascript

Solution

Javascript arrays are dynamic in size. However, if you wish to create an array of a specific size, the `Array` constructor takes an optional length argument:

function makeArray(d1, d2) {
    var arr = new Array(d1), i, l;
    for(i = 0, l = d2; i < l; i++) {
        arr[i] = new Array(d1);
    }
    return arr;
}

Slightly shorter:

function makeArray(d1, d2) {
    var arr = [];
    for(let i = 0; i < d2; i++) {
        arr.push(new Array(d1));
    }
    return arr;
}

UPDATE

function makeArray(w, h, val) {
    var arr = [];
    for(let i = 0; i < h; i++) {
        arr[i] = [];
        for(let j = 0; j < w; j++) {
            arr[i][j] = val;
        }
    }
    return arr;
}

Problem

*see the title. I basically need it to create a blank array that can be any dimension like 40x60. Basically maybe something like `makeArray(3, 4)` makes an array like: ``` [][][] [][][] [][][] [][][] ```

Original source

Related problems