创建具有特定长度和宽度的2D数组

时间:2012-12-10 20:05:18

标签: javascript arrays

*查看标题。我基本上需要它来创建一个空白数组,可以是任何尺寸,如40x60。基本上可能像makeArray(3, 4)这样的数组就像:

[][][]
[][][]
[][][]
[][][]

2 个答案:

答案 0 :(得分:7)

Javascript数组的大小是动态的。但是,如果您希望创建特定大小的数组,Array构造函数将采用可选的长度参数:

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;
}

略短:

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

<强>更新

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;
}

答案 1 :(得分:0)

好吧,使用Array就像这样一个简单的函数

    ​function makeArray(a,b) {
        var arr = new Array(a)
        for(var i = 0;i<a;i++)
            arr[i] = new Array(b)
        return arr
    }
    console.log(makeArray(4,4))

但是您不必简单地使用函数定义数组 做点什么

var arr=[]
arr[10] = 10

哪个会导致包含10个元素的数组,0 - 9是undefined

但在这种情况下,这个问题已经足够了,我试图在这个关于阵列的问题中指出一些问题,如果你有兴趣可以看看这个question