Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在另一个数组中使用array.push会生成未定义的_Javascript_Arrays_Object - Fatal编程技术网

Javascript 在另一个数组中使用array.push会生成未定义的

Javascript 在另一个数组中使用array.push会生成未定义的,javascript,arrays,object,Javascript,Arrays,Object,我在代码中看到的Fire数组中定义数组时遇到了一个问题 我使用console.log输出数组长度,该长度位于我的Fire[]数组中作为调试,但得到一个错误,表示该数组未定义。这是我的密码: var Fire=[]; var fire=功能FireGen { this.particle=[]; var part=函数粒子 { }; 这个.粒子.推动部分; }; 火,扑火; console.logFire.particle.length//输出未定义通过执行pushpart和pushfire,您正

我在代码中看到的Fire数组中定义数组时遇到了一个问题

我使用console.log输出数组长度,该长度位于我的Fire[]数组中作为调试,但得到一个错误,表示该数组未定义。这是我的密码:

var Fire=[]; var fire=功能FireGen { this.particle=[]; var part=函数粒子 { }; 这个.粒子.推动部分; }; 火,扑火; console.logFire.particle.length//输出未定义通过执行pushpart和pushfire,您正在推送函数定义

要使其作为类,请使用。推新零件,推新火

此外,Fire是一个数组,因此需要为数组中的第一项指定索引,例如Fire[0]

var Fire=[]; var fire=功能FireGen { this.particle=[]; var part=函数粒子 { }; 此.particle.push新部件; }; 火,新的火; console.logFire[0].particle.length 通过执行pushpart和pushfire,您正在推送函数定义

要使其作为类,请使用。推新零件,推新火

此外,Fire是一个数组,因此需要为数组中的第一项指定索引,例如Fire[0]

var Fire=[]; var fire=功能FireGen { this.particle=[]; var part=函数粒子 { }; 此.particle.push新部件; }; 火,新的火;
console.logFire[0].particle.length 您正在定义从未执行过的函数,并将这些函数推送到数组中。数组包含一个函数,该函数没有粒子属性

很有可能你正在尝试这样做:

var Fire=[]; var火灾={ 粒子:[ { 部分:{/*…*/} } ] } 火,扑火;
console.logFire[0].particle.length//输出1您正在定义从未执行过的函数,并将这些函数推送到数组中。数组包含一个函数,该函数没有粒子属性

很有可能你正在尝试这样做:

var Fire=[]; var火灾={ 粒子:[ { 部分:{/*…*/} } ] } 火,扑火;
console.logFire[0].particle.length//输出1正如其他人指出的,Fire是一个数组,所以要从该数组中访问第一个元素的属性,需要使用Fire[0]。。。。但是,代码中还有一些其他问题也需要解决

您的FireGen和粒子函数似乎定义为在函数体中使用的构造函数。因此,您应该使用运算符调用这些函数,例如new FireGen。一旦进行了此更改,您可能应该重新排列代码,以便将x和y作为参数传入,并且您只需定义每个函数一次

例如:

var Fire=[]; 函数FireGenx,y { 这个.x=x; 这个。y=y; this.particle=[]; this.particle.pushnew Particlex,y; }; 函数分词,y { 这个.x=x; 这个。y=y; }; 函数派生FireEvent { var x=event.clientX; var y=event.clientY; Fire.pushnew FireGenx,y; console.logFire[0].particle.length;//输出未定义 }
文件。添加事件列表器“单击”,引发火灾 正如其他人指出的,Fire是一个数组,所以要访问该数组中第一个元素的属性,需要使用Fire[0]。。。。但是,代码中还有一些其他问题也需要解决

您的FireGen和粒子函数似乎定义为在函数体中使用的构造函数。因此,您应该使用运算符调用这些函数,例如new FireGen。一旦进行了此更改,您可能应该重新排列代码,以便将x和y作为参数传入,并且您只需定义每个函数一次

例如:

var Fire=[]; 函数FireGenx,y { 这个.x=x; 这个。y=y; this.particle=[]; this.particle.pushnew Particlex,y; }; 函数分词,y { 这个.x=x; 这个。y=y; }; 函数派生FireEvent { var x=event.clientX; var y=event.clientY; Fire.pushnew FireGenx,y; console.logFire[0].particle.length;//输出未定义 }
文件。添加事件列表器“单击”,引发火灾@吉蒂斯多克很高兴能帮忙。也就是说,看一看。他的实现是可扩展的,而且——在我个人看来——是实现这一点的正确方法。@GytisDokš很高兴能提供帮助。也就是说,看一看。他的实现是可扩展的,而且——在我个人看来——是实现这一点的正确方法。