Javascript Can';t存取阵列外环
从for循环中的另一个数组填充后,访问数组时遇到一个奇怪的错误。CustomerName从另一个代码区域传递,并保存正确的值。我可以在第一个for循环中警告新数组,但是在第二个for循环中没有这样的运气。我收到一个未定义的错误Javascript Can';t存取阵列外环,javascript,arrays,for-loop,Javascript,Arrays,For Loop,从for循环中的另一个数组填充后,访问数组时遇到一个奇怪的错误。CustomerName从另一个代码区域传递,并保存正确的值。我可以在第一个for循环中警告新数组,但是在第二个for循环中没有这样的运气。我收到一个未定义的错误 var aLocalDogs = new Array(); for (var a=0; a < localDogs.length; a++) { if(CustomerName === localDogs[a].CustomerName){
var aLocalDogs = new Array();
for (var a=0; a < localDogs.length; a++) {
if(CustomerName === localDogs[a].CustomerName){
aLocalDogs[a]=localDogs[a];
alert(aLocalDogs[a].CustomerName);
alert(aLocalDogs[a].CustomerAddress);
}
}
for (var b=0; b < aLocalDogs.length; b++) {
alert(aLocalDogs[b].CustomerName);
alert(aLocalDogs[b].CustomerName);
}
var aLocalDogs=new Array();
对于(var a=0;a
任何帮助都将不胜感激……假设
localDogs[a].CustomerName
在a==5之前不等于CustomerName
。然后你要:
aLocalDogs[5]=localDogs[5]代码>
在第二个循环中,您尝试访问alocalDogs[0]
。你从来没有分配给它
尝试使用aLocalDogs.push(localDogs[a])
代替:
var aLocalDogs = new Array();
for (var a=0; a < localDogs.length; a++) {
if(CustomerName === localDogs[a].CustomerName){
aLocalDogs.push(localDogs[a]);
}
}
var aLocalDogs=new Array();
对于(var a=0;a
由于alocalDogs
现在已按顺序分配,因此for
循环的第一个中的警报将不再工作-但我假设这些警报用于调试(否则,您可以只对localDogs[a]
的值发出警报)。第二个循环现在应该可以工作了。这是您的实际代码,还是介于两者之间?代码介于更多代码之间。localDogs包含localDogs[1].DogTitle、localDogs[2].DogTitle等值……请发布一个完整的代码示例,我们可以在其中重现该问题。使用像jsFiddle.net这样的网站通常是有帮助的。找到它,回来看看您提出的相同解决方案。这么愚蠢的错误。。。。将标记为答案,谢谢您的时间。。。