用于Javascript数组3d中的

用于Javascript数组3d中的,javascript,arrays,Javascript,Arrays,我想初始化一个三维数组,所有位置都是零。我使用作为循环来填充我的矩阵,但是当我测试时,我得到一个错误类型错误:这个。矩阵[x][y]未定义我有这个: class Cube { constructor(size) { this.size = size this.matrix = [ [ [] ], [ [] ] ] this.createMatrix(size) } getsize() { return t

我想初始化一个三维数组,所有位置都是零。我使用
作为循环
来填充我的矩阵,但是当我测试时,我得到一个错误
类型错误:这个。矩阵[x][y]未定义
我有这个:

class Cube {

    constructor(size) {
        this.size = size
        this.matrix = [ [ [] ], [ [] ] ]
        this.createMatrix(size)
    }

    getsize() {
        return this.size
    }

    /*Fill matrix with zeros*/
    createMatrix(size) {
        for (var x = 0; x < size; x++) {
            for (var y = 0; y < size ; y++) {
                for (var z = 0; z < size ; z++) {
                   this.matrix[x][y][z] = 0
                }
            } 
        }
        console.log(this.matrix)
    }
 }

 myCube = new Cube(4)
类多维数据集{
构造函数(大小){
this.size=size
this.matrix=[[]],[[[]]
此.createMatrix(大小)
}
getsize(){
退回这个尺寸
}
/*用零填充矩阵*/
创建矩阵(大小){
对于(变量x=0;x

如何填充矩阵?

这是因为需要初始化每个单独的数组。记住:3D数组是数组的数组

函数三达瑞(宽度、高度、深度){
var结果=[];
对于(变量x=0;x日志(三个Darray(3,3,3))这是因为您需要初始化每个单独的数组。记住:3D数组是数组的数组

函数三达瑞(宽度、高度、深度){
var结果=[];
对于(变量x=0;x日志(三个Darray(3,3,3))如果数组中的每一项尚未初始化,则必须对其进行检查,在这种情况下,需要将其设置为
array

类多维数据集{
构造函数(大小){
this.size=size
this.matrix=[]
此.createMatrix(大小)
}
getsize(){
退回这个尺寸
}
/*用零填充矩阵*/
创建矩阵(大小){
对于(变量x=0;xmyCube=new Cube(4)
如果数组中的每个项目尚未初始化,则必须检查该项目,在这种情况下,需要将其设置为
数组

类多维数据集{
构造函数(大小){
this.size=size
this.matrix=[]
此.createMatrix(大小)
}
getsize(){
退回这个尺寸
}
/*用零填充矩阵*/
创建矩阵(大小){
对于(变量x=0;xmyCube=new Cube(4)
您可以使用
数组。从({length:n})
创建长度为
n
的空数组,并使用
fill()
方法将其填充为零:

constemptyArray=n=>Array.from({length:n});
常量createMatrix=n=>emptyArray(n).map(()=>
空数组(n).map(()=>空数组(n).fill(0))
);

console.log(createMatrix(4))
您可以使用
Array.from({length:n})
创建长度为
n
的空数组,并使用
fill()
方法将其填充为零:

constemptyArray=n=>Array.from({length:n});
常量createMatrix=n=>emptyArray(n).map(()=>
空数组(n).map(()=>空数组(n).fill(0))
);

console.log(createMatrix(4))注意:
typeof
不是一个函数,因此不需要括号,
typeof[]
将返回
“object”
,因此这不是检查某个对象是否是数组的好方法。@MikeC感谢您的评论!更改为
Array。isArray
而不是TypeOfTanks@Dekel,您的答案对我很有用。注意:
typeof
不是一个函数,因此不需要括号,
typeof[]
将返回
“object”
,因此这不是检查某个对象是否是数组的好方法。@MikeC感谢您的评论!更改为
Array.isArray
而不是tanks@Dekel的类型,您的答案对我很有用。