for (i=0;i<channelName.length;i++) {
if (channelName[i]=="channel"||channelName[i]=="user") {
checkUserDuplicate(channelName[i]);
}
}
此循环在所有浏览器中导致“内存不足”崩溃。谁能看到为什么?它似乎在IF语句崩溃,然后以某种方式导致无限循环。JS循环正在循环和崩溃的浏览器?
如果您想知道代码的作用,它会在未定义长度的数组中找到关键字“channel”和“user”,然后在下一个位置获取该字符串。
任何帮助将不胜感激,因为我一直坐在这里困惑了2个小时。
编辑:频道名称就像http://www.youtube.com/user/username
这个网址的功能是:
function checkUserDuplicate(channelName) {
var idarray=[];match=0;$('.channels').each(function(){idarray.push(this.id)});
for (i=0;i<idarray.length;i++) {
var current=channelName.toLowerCase();compare=idarray[i].toLowerCase();
if (current==compare) {callError(channelName+" already exists in this collection");match=1;}
} if (match==0) {checkExists(channelName);}
}
这是一个烂摊子:)
什么的'checkUserDuplicate'的代码?我猜'我'是一个全局变量,你正在探讨它在这个函数中的价值吗?确切地说,请声明你的变量。 – Teemu
不符合当前显示的内容。 'channelName'的价值和多大? 'checkUserDuplicate'做了什么(*我假设这是循环以及可能导致无限循环*)? –
@Teemu对不起,不,它不是一个全局变量。代码非常长。 – LewisHarris