Javascript 粘贴以下代码后,我的浏览器崩溃。为什么?
粘贴以下代码后,我的浏览器崩溃。我完全不知道为什么。我是Javascript新手 这是我的密码:Javascript 粘贴以下代码后,我的浏览器崩溃。为什么?,javascript,browser,crash,Javascript,Browser,Crash,粘贴以下代码后,我的浏览器崩溃。我完全不知道为什么。我是Javascript新手 这是我的密码: var randarray = new Array(); var l = 0; var flag; var numofpost = 5; function randomposts(json) { var total = parseInt(json.feed.openSearch$totalResults.$t, 10); for (i = 0; i < numofpost;)
var randarray = new Array();
var l = 0;
var flag;
var numofpost = 5;
function randomposts(json) {
var total = parseInt(json.feed.openSearch$totalResults.$t, 10);
for (i = 0; i < numofpost;) {
flag = 0;
randarray.length = numofpost;
l = Math.floor(Math.random() * total);
for (j in randarray) {
if (l == randarray[j]) {
flag = 1;
}
}
if (flag == 0 && l != 0) {
randarray[i++] = l;
}
}
document.write('<ul class="rp-menu">');
for (n in randarray) {
var p = randarray[n];
var entry = json.feed.entry[p - 1];
for (k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
var item = "<li>" + "<a href=" + entry.link[k].href + ">" + entry.title.$t + "</a></li>";
document.write(item);
}
}
}
document.write('</ul>');
}
var randarray=new Array();
var l=0;
var标志;
var numofpost=5;
函数(json){
var total=parseInt(json.feed.openSearch$totalResults.$t,10);
对于(i=0;i”);
for(数组中的n){
var p=随机数组[n];
var entry=json.feed.entry[p-1];
对于(k=0;k”+“”;
文件。书写(项目);
}
}
}
文件。写(“”);
}
第一个for
循环中的i
增量是在一个条件之后,因此如果它从未解析为true
,您将有一个无限循环欢迎使用StackOverflow。请阅读有关如何提出好问题的常见问题。“请解决这个问题,并给我正确的代码”不是一个好问题,我们希望您调试代码,解释出什么地方出了问题,以及您试图修复它。此外,在寻求代码方面的帮助时,请花时间以可读的方式格式化代码。“提问”页面上有很多格式辅助工具。这次我已经为您运行了您的代码。@T.J.Crowder:对不起,我在您之前开始编辑,在您之后发布,直到后来才意识到发生了什么。抱歉:)如果您的目的是在数组中的给定范围内保留一个唯一的随机数,那么有更好的方法。我猜您的数组长度(numofost
)大于可能的数字范围(0-total
),因此您在数组中没有可放入的唯一数字,导致了无限循环。@monster你好,兄弟,我是javascript新手。你可以编辑我的所有代码,并给我正确的代码,以便我可以在我的模板中使用。请兄弟给我正确的密码。@monster你好,兄弟,你能告诉我怎么解决这个问题吗?我是javascript新手。@Noxdo:它与javascript无关,它与逻辑有关。循环将继续,直到i
等于或大于numpost
。如果在此之前有任何循环的迭代,而您从未递增(“add to”)i
,则循环将永远重复。所以总是递增i
@Noxdo:你的条件是if(flag==0&&l!=0){
,这意味着i
增加的唯一方法是如果标志
是0
,而l
不是0
。似乎在randarray
中设置并找到l
时,标志
也设置为相同的值,因此它们不会具有相同的值。