Javascript 如何创建值并将其推入三维数组

Javascript 如何创建值并将其推入三维数组,javascript,arrays,Javascript,Arrays,我需要帮助制作三维阵列,我的目标是: 仅用于图示:-),请参见下一行 [类别:1[子类别:1[子类别:1,2],2[子类别:3,4]] 在上面的场景中,用户选择了: category 1 subcategories: 1 subsubcategories: 1,2 subcategories: 2 subsubcategories: 3,4 然后,我可以使用这些值创建一个字符串,如:1^1:1,2^2:3,4 希望大家理解:)使用对象而不是数组。在数组元素上使用字符串索引时,数组会变成对象,之

我需要帮助制作三维阵列,我的目标是:

仅用于图示:-),请参见下一行

[类别:1[子类别:1[子类别:1,2],2[子类别:3,4]]

在上面的场景中,用户选择了:

category 1
subcategories: 1
subsubcategories: 1,2
subcategories: 2
subsubcategories: 3,4
然后,我可以使用这些值创建一个字符串,如:1^1:1,2^2:3,4


希望大家理解:)

使用
对象
而不是
数组
。在数组元素上使用字符串索引时,
数组
会变成
对象
,之后一些数组方法可能无法正常工作。为什么不从一开始就使用
对象

警告!! 如果使用命名索引,JavaScript会将数组重新定义为标准对象。 之后,某些数组方法和属性将产生不正确的结果

这是从一本书中摘取的

下面是一个如何使用它的示例:

//对象={}而不是数组=[]
var myObject={};
myObject['category']={1:{子类别:{1:[1,2],2:[3,4]}};
//比如说
var anotherObject={};
另一个对象['category']={1:{},2:{};
另一个对象['category'][1]=[1,2];
另一个对象['category'][2]=[3,4];
//编辑:示例3
// ---------------
//来自数据库JSON格式的结果
var resultFromDB={“category”:{“1”:{“subcategories”:{“1”:{“subsubcategories”:[1,2]},“2”:{“subsubcategories”:[3,4]}}};
//从输入构建新对象的示例
var myNewObject={};
var类型;
//通过第一关
for(resultFromDB中的var索引)
{
//如果需要,这就是检查输入类型的方法
type=typeof resultFromDB[index];
if((type==“object”)&&&(type!==null))//检查它是否是一个对象
{
//将myNewObject[索引]设置为新对象
myNewObject[index]={};
//通过二级考试
for(resultFromDB[index]中的var子索引)
{
//将myNewObject[索引][子索引]设置为新对象
myNewObject[index][subIndex]={};
//通过三级考试
对于(resultFromDB[index][subIndex]中的var subSubIndex)
{
//只需使用“=”即可从该级别获取所有内容
myNewObject[index][subIndex][subSubIndex]=resultFromDB[index][subIndex][subSubIndex];
}
}
}
}
log(“这是新对象”);
log(myNewObject);
控制台日志(“\n”);
log(“这是原始对象”);
log(myNewObject);
//如果您需要在多个位置提取,您可以创建一个用于快速访问的函数
函数returnObject(incomingObject)
{
var myNewObject={};
var类型;
//…将示例3中除resultFromDB之外的所有上述代码复制粘贴到此处
返回myNewObject;
}
//那就从任何地方打电话吧

var theNewestObject=returnObject(resultFromDB)
制作3d数组有什么困难?为什么你想要纯数组而不是创建表示你需要的对象?可能是重复的我不反对对象,我只想以正确的方式收集数据:)谢谢你的回答,你能不能也举一个例子说明如何使用push met添加这些值hod?这些值是从数据库中获取的。@ChristerEngholm我将用一些示例进行编辑,以向您展示您可以做什么。谢谢,我迫不及待地想检查它们:)@ChristerEngholm好的,我知道了。检查
//示例3
的代码,就是这样。如果您从数据库中得到的结果是
JSON
格式(应该是),这应该完全适用于您。告诉我它是否有效,如果不发布您的传入(来自db)数据,以便我可以看到它的确切外观,然后我可以调整函数。