可以用一行代码在JavaScript中定义和初始化多维数组吗?

可以用一行代码在JavaScript中定义和初始化多维数组吗?,javascript,Javascript,如果这太基本了,我很抱歉,但我正在努力用JavaScript定义4维数组(大小为6x6)并将其初始化为所有1。最简单的方法是什么 谢谢 您可以使用文字语法,但它会非常庞大和繁琐。您可能想尝试以下方法: var x = [1, 1, 1, 1, 1, 1]; for (var i = 1; i < 4; i++) { x = [x, x, x, x, x, x]; } var x=[1,1,1,1,1,1]; 对于(变量i=1;i

如果这太基本了,我很抱歉,但我正在努力用JavaScript定义4维数组(大小为6x6)并将其初始化为所有1。最简单的方法是什么


谢谢

您可以使用文字语法,但它会非常庞大和繁琐。您可能想尝试以下方法:

var x = [1, 1, 1, 1, 1, 1];
for (var i = 1; i < 4; i++) {
    x = [x, x, x, x, x, x];
}
var x=[1,1,1,1,1,1]; 对于(变量i=1;i<4;i++){ x=[x,x,x,x,x,x]; } 我找到了一个稍微简单一点的解决方案:

var x = 1;
for (var i = 0; i < 4; i++) {
    x = [x, x, x, x, x, x];
}
var x=1;
对于(变量i=0;i<4;i++){
x=[x,x,x,x,x,x];
}

您可以使用文字语法,但它会非常庞大和繁琐。您可能想尝试以下方法:

var x = [1, 1, 1, 1, 1, 1];
for (var i = 1; i < 4; i++) {
    x = [x, x, x, x, x, x];
}
var x=[1,1,1,1,1,1]; 对于(变量i=1;i<4;i++){ x=[x,x,x,x,x,x]; } 我找到了一个稍微简单一点的解决方案:

var x = 1;
for (var i = 0; i < 4; i++) {
    x = [x, x, x, x, x, x];
}
var x=1;
对于(变量i=0;i<4;i++){
x=[x,x,x,x,x,x];
}

似乎应该有更简单的方法,但这样就可以了

var array = [];

for(var i=0; i<6; i++) {
    for(var j=0; j<6; j++) {
        for(var k=0; k<6; k++) {
            for(var l=0; l<6; l++) {
                array[i][j][k][l]=1;
            }
        }
    }
}

似乎应该有更简单的方法,但这样就行了

var array = [];

for(var i=0; i<6; i++) {
    for(var j=0; j<6; j++) {
        for(var k=0; k<6; k++) {
            for(var l=0; l<6; l++) {
                array[i][j][k][l]=1;
            }
        }
    }
}

我实现了ddlshack的通用方法,但由于数组在JavaScript中是“按引用传递”的事实,我遇到了一个问题。这导致数组的每个维度都包含对同一数组的多个引用,而不是它的副本。为了纠正这个问题,我实现了如下解决方案(唯一的区别是我使用了第二个函数,而不是修改数组的原型)

var fillArray=函数(val,dim){
var a=[];
对于(变量i=0;i=0;i--){
val=填充数组(val,维度[i]);
}
返回val;
};

我实现了ddlshack的通用方法,但由于数组在JavaScript中是“按引用传递”的,所以遇到了一个问题。这导致数组的每个维度都包含对同一数组的多个引用,而不是它的副本。为了纠正这个问题,我实现了如下解决方案(唯一的区别是我使用了第二个函数,而不是修改数组的原型)

var fillArray=函数(val,dim){
var a=[];
对于(变量i=0;i=0;i--){
val=填充数组(val,维度[i]);
}
返回val;
};

Javascript的可能副本没有多维数组,而是数组数组的数组。@Frankie多维数组只是数组的数组。大小为6,6,6,6是什么意思?@ddlshack:4维数组,每个维度的大小显然为6
[[[1]]]
Javascript的可能副本没有多维数组,而是数组数组的数组。@Frankie多维数组只是数组的数组。大小为6,6,6,6是什么意思?@ddlshack:4维数组,显然每个维度的大小都为6<代码>[[1]]]mikez302的解决方案更好。不过,这将允许您创建AxBxCxD矩阵。mikez302的解决方案更好。但是,这将允许您创建AxBxCxD矩阵。谢谢!顺便说一句,这个问题不是一个挑战,我需要这个来解决一个与组合学相关的问题,而你救了我一天:)有趣的是,定义一个数组可能如此不直观……谢谢!顺便说一句,这个问题不是一个挑战,我需要这个来解决一个与组合学相关的问题,而你救了我一天:)有趣的是,定义一个数组可能太不直观了。。。