【发布时间】:2014-01-12 16:07:10
【问题描述】:
粘贴以下代码后,我的浏览器崩溃了。我完全不知道为什么。我是 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;) {
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>');
}
【问题讨论】:
-
欢迎来到 StackOverflow。请阅读关于如何提出好问题的常见问题解答。 “请解决这个问题并给我正确的代码”不是一个好问题,我们希望您调试您的代码,您解释出了什么问题,以及您尝试解决的问题。
-
另外,在寻求代码方面的帮助时,请花时间将代码格式化为可读性。在“提问”页面上有很多的格式辅助工具。这次我已经通过jsbeautifier.org 为你运行了你的代码。
-
@T.J.Crowder:对不起,我在你之前开始编辑并在你之后发布,直到后来才意识到发生了什么。对不起:)
-
如果您的意图是在一个数组的给定范围内保存多个唯一随机数,有更好的方法来做到这一点。我猜你的数组长度(
numofpost)大于可能的数字范围(0-total),所以你用完了唯一的数字来放入数组,导致无限循环。 -
@monster 兄弟你好,我是 JavaScript 新手。您能否编辑我的所有代码并给我正确的代码,以便我可以在我的模板中使用。请兄弟给我正确的代码。
标签: javascript browser crash