我正在寻找初始化Javascript中的多维数组的最佳方法。我对PHP非常熟悉,在向PHP提供值之前,我无须声明数组或维度。

基本上我想做的就是用以下格式创建一个数组

catalogue[i]["name"]="a name";
catalogue[i]["description"]="a description";


...等等...

如果我执行以下操作:

var catalogue = new Array();
for (i=0; i<otherarray.length;i++)
    {
       catalogue[i]['name']=otherarray[i];
    }


目录未定义,我也尝试使用catalog [i] .name,但存在相同问题。如果我只分配一个简单的值,例如catalogue [i] = 2,则可以,但这不是我想要的。我找不到想要的工作示例。

我是否需要初始化数组的每个可能的维,然后才能使用新值对其进行馈送?

谢谢
劳伦特

最佳答案

将其放入循环中以创建要在其中存储值的对象:

catalogue[i] = {};catalogue.push({});

您的代码将如下所示:

var catalogue = new Array();
for (i=0; i<otherarray.length;i++)
{
   catalogue[i] = {}; // initialization
   catalogue[i]['name']=otherarray[i];
}


请注意,您可以在同一行中初始化和分配值:

var catalogue = new Array();
for (i=0; i<otherarray.length;i++)
{
    catalogue[i] = {
        name: otherarray[i],
        otherKey: 'otherValue' // list all of your keys and values
    };
}

10-06 00:48