4

*见标题。我基本上需要它来创建一个可以是任何尺寸的空白数组,例如 40x60。基本上,也许像这样的东西makeArray(3, 4)制作了一个数组:

[][][]
[][][]
[][][]
[][][]
4

2 回答 2

11

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;
}
于 2012-12-10T20:13:38.230 回答
2

那么让 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

但在这种情况下,答案就足够了,我试图在这个问题中指出一些关于数组的事情,如果你有兴趣可以看看这个问题

于 2012-12-10T20:18:42.917 回答