我一直在网上阅读,一些地方说这是不可能的,一些地方说这是可能的,然后给出一个例子,另一些地方反驳这个例子,等等。
如何在JavaScript中声明一个2维数组?(假设这是可能的) 我如何访问它的成员?(myArray[0][1] or myArray[0,1]?)
我一直在网上阅读,一些地方说这是不可能的,一些地方说这是可能的,然后给出一个例子,另一些地方反驳这个例子,等等。
如何在JavaScript中声明一个2维数组?(假设这是可能的) 我如何访问它的成员?(myArray[0][1] or myArray[0,1]?)
当前回答
递归函数创建多维数组:
var makeArray = function (dims, arr) {
if (dims[1] === undefined) {
return new Array(dims[0]);
}
arr = new Array(dims[0]);
for (var i=0; i<dims[0]; i++) {
arr[i] = new Array(dims[1]);
arr[i] = makeArray(dims.slice(1), arr[i]);
}
return arr;
}
构建一个2x3x4x2的4D-Array:
var array = makeArray([2, 3, 4, 2]);
其他回答
我不确定是否有人回答过这个问题,但我发现这对我很有效
var array = [[,],[,]]
eg:
var a = [[1,2],[3,4]]
例如,对于一个二维数组。
ES6+、ES2015+可以用更简单的方式做到这一点
创建3 × 2的数组,填充为true
[...Array(3)].map(item => Array(2).fill(true))
如果数组的大小未知会发生什么?或者数组应该动态创建和填充?另一种解决方案,为我工作是使用类与静态2d数组变量,在数组中不存在索引的情况下将启动它:
function _a(x,y,val){
// return depending on parameters
switch(arguments.length){
case 0: return _a.a;
case 1: return _a.a[x];
case 2: return _a.a[x][y];
}
// declare array if wasn't declared yet
if(typeof _a.a[x] == 'undefined')
_a.a[x] = [];
_a.a[x][y] = val;
}
// declare static empty variable
_a.a = [];
语法将是:
_a(1,1,2); // populates [1][1] with value 2
_a(1,1); // 2 or alternative syntax _a.a[1][1]
_a(1); // [undefined × 1, 2]
_a.a; // [undefined × 1, Array[2]]
_a.a.length
nodejs + lodash版本:
var _ = require("lodash");
var result = _.chunk(['a', 'b', 'c', 'd', 'e', 'f'], 2);
console.log(result);
console.log(result[2][0]);
输出:
[ [ 'a', 'b' ], [ 'c', 'd' ], [ 'e', 'f' ] ]
e
只需将数组中的每个项设置为数组。
var x = new Array(10); For (var I = 0;I < x.length;我+ +){ x[i] = new Array(3); } console.log (x);