我一直在网上阅读,一些地方说这是不可能的,一些地方说这是可能的,然后给出一个例子,另一些地方反驳这个例子,等等。

如何在JavaScript中声明一个2维数组?(假设这是可能的) 我如何访问它的成员?(myArray[0][1] or myArray[0,1]?)


当前回答

最简单的方法:

var myArray = [[]];

其他回答

这就是我的成就:

var appVar = [[]]; appVar[0][4] = "bineesh"; appVar[0][5] = "kumar"; console.log(appVar[0][4] + appVar[0][5]); console.log (appVar);

这把我拼成了bineeshkumar

我不确定是否有人回答过这个问题,但我发现这对我很有效

var array = [[,],[,]]

eg:

var a = [[1,2],[3,4]]

例如,对于一个二维数组。

最明智的答案似乎是

var nrows = ~~(随机数学)* 10); var ncols = ~~(随机数学)* 10); 游戏机。log (rows:美元(nrows)); 游戏机。log(离职:美元(ncols)); var矩阵=新阵列(nrows)。地图(row =>新阵列(ncols).fill(0)); 游戏机。log(《黑客帝国》);


请注意,我们不能直接填充行,因为填充使用浅复制构造函数,因此所有行将共享相同的内存…下面是演示如何共享每一行的示例(取自其他答案):

// DON'T do this: each row in arr, is shared
var arr = Array(2).fill(Array(4));
arr[0][0] = 'foo'; // also modifies arr[1][0]
console.info(arr);

我修改了Matthew Crumley关于创建多维数组函数的回答。我已经添加了要作为数组变量传递的数组的维度,还有另一个变量- value,它将用于设置多维数组中最后一个数组的元素的值。

/*
*   Function to create an n-dimensional array
*
*   @param array dimensions
*   @param any type value
*
*   @return array array
 */
function createArray(dimensions, value) {
    // Create new array
    var array = new Array(dimensions[0] || 0);
    var i = dimensions[0];

    // If dimensions array's length is bigger than 1
    // we start creating arrays in the array elements with recursions
    // to achieve multidimensional array
    if (dimensions.length > 1) {
        // Remove the first value from the array
        var args = Array.prototype.slice.call(dimensions, 1);
        // For each index in the created array create a new array with recursion
        while(i--) {
            array[dimensions[0]-1 - i] = createArray(args, value);
        }
    // If there is only one element left in the dimensions array
    // assign value to each of the new array's elements if value is set as param
    } else {
        if (typeof value !== 'undefined') {
            while(i--) {
                array[dimensions[0]-1 - i] = value;
            }
        }
    }

    return array;
}

createArray([]);              // [] or new Array()

createArray([2], 'empty');    // ['empty', 'empty']

createArray([3, 2], 0);       // [[0, 0],
                              //  [0, 0],
                              //  [0, 0]]
const arr = new Array(5).fill(new Array(5).fill(0));
console.log(arr);