Javascript 将对象数组传递给js函数
我第一次尝试在javascript中实现OOP,当我尝试向这个函数发送一个对象数组时,我被一个递归函数卡住了。因此,我有一个“Pitic”类(Pitic在罗马尼亚语中是侏儒的意思)和一些专有名词:Javascript 将对象数组传递给js函数,javascript,oop,Javascript,Oop,我第一次尝试在javascript中实现OOP,当我尝试向这个函数发送一个对象数组时,我被一个递归函数卡住了。因此,我有一个“Pitic”类(Pitic在罗马尼亚语中是侏儒的意思)和一些专有名词: function Pitic(piticID) { this.id = piticID; this.inaltime = null; this.greutate = null; this.genereazaGreutate(); this.genereazaInaltime(); } 我现在正在生成
function Pitic(piticID) {
this.id = piticID;
this.inaltime = null;
this.greutate = null;
this.genereazaGreutate();
this.genereazaInaltime();
}
我现在正在生成一些侏儒,并将它们存储在public piticiCollection数组变量中。“generazagreutate”和“generazainaltime”是为inaltime和greutate值生成随机值的函数
var pitic = new Pitic(idPitic);
piticiCollection.push(pitic);
当我尝试将MIDGET数组发送到函数时,问题就出现了,因为我得到的只是数组的第一项
因此,在调用函数之前,我有一个包含4个对象的PiticicCollection数组:
我一调用以piticiCollection作为参数的函数,就松开了3个侏儒(
p、 请原谅我英语不好
[编辑]
下面是我的完整代码:我在第56行调用该函数,调试器一点击第60行,我就释放了数组项。您的
determinationaPerchipoble
正在修改此行的原始数组:
colectieDePitici.splice(1, colectieDePitici.length);
特别是,它将删除除第一个元素以外的所有元素。您可能应该使用它以非破坏性方式提取要在其上递归的数组部分。正如Ted Hopp所提到的,问题似乎在于行
collectiedepitici.splice(1,collectiedepitici.length);
结合这一行:
colectieDePitici.splice(1, colectieDePitici.length);
determinateaphibile(colectiedepiticcopy);
如果这两行被注释掉,数组将保持其原始长度。在函数中使用之前,我通过创建数组的副本解决了问题。奇怪:(
函数确定器(somePitici){
var piticdecorat,结肠镜;
结肠镜检=某些垂体;
对于(变量i=1;i
将对象数组传递给函数的代码在哪里?这就是我们需要看到的。如何创建数组,如何传递给函数,以及如何在函数内部访问数组。@fDruga尝试传递一个内联数组,并检查得到的结果。DeterminateApreChiposible([1,2,3,4]);
@jfriend00您可以在屏幕截图1中看到被传递给函数“determinationaperechipoble”的对象填充的数组。在屏幕截图2中,您可以看到函数。我使用for创建数组,并使用代码piticcollection.push(Pitic)添加Pitic对象;@plalx情况并非如此,因为我需要对象在FunctionArray中可用。成员不会消失。它只是在调试器中显示1个成员,还是在代码的自然输出中显示1个成员?在检查数组的完整性后调用splice。我对该行进行了注释,但仍然遇到问题。好的,splice不是问题所在。我定义了一个名为test的新函数,并通过了数组。它运行良好。我添加了for并再次断开它。我再次编写了该函数,它运行正常。当然,我必须修改拼接到拼接(0,1)但我再说一遍…甚至在代码到达拼接函数之前,我的数组就被破坏了。对我来说,这仍然是一个谜,我现在就到此为止。谢谢你的回复。。