尝试从数组错误中删除项目时
When trying to remove an item from array errors
因此,当我在 Khan Academy 上编写游戏时,当我尝试从数组中删除一颗子弹时,我 运行 进入错误 "Object does not support method splice" 我已经检查了我的代码几个小时并且没有发现为什么它不起作用。想法?
编辑:用于删除项目符号的代码是 bullets[i].splice(i,1);
,这就是我的代码出错的原因。
MVCE:
var bullets = [];
var bullet= function(x,y,blah)
{
//code that is not important here
};
bullets.push(bullet(0,0,30));
for(var I = 0; I < bullets.length; I++){
if(bulletRemove){
bullets[I].splice(i,1)
}
}
您有一个名为 bullets
:
的变量
var bullets = [];
(旁注:为什么在这一行之前有一个随机的大括号?)
这个bullets
变量是一个数组。它包含 Bullet
class:
的实例
bullets.push(new Bullet(x, y, 10, player.x+bSize/2, player.y+bSize/2));
您可以使用数组访问特定索引处的 Bullet
,然后您可以在该实例上调用 Bullet
class 的函数:
bullets[i].move();
您还可以在数组本身上调用 splice()
函数:
bullets.splice(i,1);
但是,您不能在特定 Bullet
实例上调用 splice()
函数!
bullets[i].splice(i,1);
此行从 bullets
数组的 i
索引中获取 Bullet
的实例,然后尝试从 [=] 调用 splice()
函数18=] class。但是 Bullet
class 没有 splice()
函数!这就是导致错误的原因。
相反,您可能打算在数组本身上调用它:
bullets.splice(i,1);
以后,请在post提出问题之前尝试缩小问题范围。尝试 post 一个 MCVE 而不是整个项目。您可以将一个示例程序放在一起,该程序仅使用几行来创建一个硬编码数组,并用它来演示您的问题。您可能会在创建 MCVE 的过程中自己发现问题!
因此,当我在 Khan Academy 上编写游戏时,当我尝试从数组中删除一颗子弹时,我 运行 进入错误 "Object does not support method splice" 我已经检查了我的代码几个小时并且没有发现为什么它不起作用。想法?
编辑:用于删除项目符号的代码是 bullets[i].splice(i,1);
,这就是我的代码出错的原因。
MVCE:
var bullets = [];
var bullet= function(x,y,blah)
{
//code that is not important here
};
bullets.push(bullet(0,0,30));
for(var I = 0; I < bullets.length; I++){
if(bulletRemove){
bullets[I].splice(i,1)
}
}
您有一个名为 bullets
:
var bullets = [];
(旁注:为什么在这一行之前有一个随机的大括号?)
这个bullets
变量是一个数组。它包含 Bullet
class:
bullets.push(new Bullet(x, y, 10, player.x+bSize/2, player.y+bSize/2));
您可以使用数组访问特定索引处的 Bullet
,然后您可以在该实例上调用 Bullet
class 的函数:
bullets[i].move();
您还可以在数组本身上调用 splice()
函数:
bullets.splice(i,1);
但是,您不能在特定 Bullet
实例上调用 splice()
函数!
bullets[i].splice(i,1);
此行从 bullets
数组的 i
索引中获取 Bullet
的实例,然后尝试从 [=] 调用 splice()
函数18=] class。但是 Bullet
class 没有 splice()
函数!这就是导致错误的原因。
相反,您可能打算在数组本身上调用它:
bullets.splice(i,1);
以后,请在post提出问题之前尝试缩小问题范围。尝试 post 一个 MCVE 而不是整个项目。您可以将一个示例程序放在一起,该程序仅使用几行来创建一个硬编码数组,并用它来演示您的问题。您可能会在创建 MCVE 的过程中自己发现问题!