Javascript 推进多维阵列

Javascript 推进多维阵列,javascript,arrays,Javascript,Arrays,我推到多维阵列时遇到问题,我得到了错误 _this.fieldRefs[ID]。推送不是函数 我的代码很简单,所以我想: this.fieldRefs = this.fieldRefs || []; // init `this.fieldRefs` if it doesn't exist this.fieldRefs.push(ID); // push the `ID` e.g `0` this.fieldRefs[ID].push(ref); // add the `ref` to `0` (

我推到多维阵列时遇到问题,我得到了错误

_this.fieldRefs[ID]。推送不是函数

我的代码很简单,所以我想:

this.fieldRefs = this.fieldRefs || []; // init `this.fieldRefs` if it doesn't exist
this.fieldRefs.push(ID); // push the `ID` e.g `0`
this.fieldRefs[ID].push(ref); // add the `ref` to `0` (ref is an ele)
前两行工作正常,
this.fieldRefs
包含
ID
,例如:

this.fieldRefs = [0]

但最后一行是错误发生的地方。如果我选中
this.fieldRefs[ID]
我确实得到了
0
,但我不能推到
0
索引

您要做的是分配一个与ID相关的引用数组

因此,如果ID始终是一个数字,而不是将此值推送到现有数组,则最好在该ID定义的索引中初始化数组。如下所示:

this.fieldRefs = this.fieldRefs || []; 
this.fieldRefs[ID] = []; 
this.fieldRefs[ID].push(ref).

您当前所做的是不同的,因为您正在将ID值存储在
fieldRefs
数组中的连续索引上,但索引与ID值不匹配。

这一点。fieldRefs[ID]=[]应初始化为push works on array Type您正在尝试
。将
某个内容推到数字
0
中@evolutionxbox JS拥有多维数组!!“对象”是另一回事。您要做的是分配一个与ID相关的引用数组。因此,如果ID始终是一个数字,而不是将此值推送到现有数组,则最好在该ID定义的索引中初始化数组。如下所示:
this.fieldRefs=this.fieldRefs | |[];this.fieldRefs[ID]=[];此.fieldRefs[ID].push(ref)
。您当前所做的是不同的,因为您将ID值存储在
fieldRefs
数组中的连续索引上,但索引与ID值不匹配。