var links = ["http://www.google.com/", "http://www.cnn.com/", "http://www.bbc.com/", "http://www.nbc.com/"];
var random = Math.round(Math.random() * 4);
var previous = [];
previous.push(random);
return previous
for (var i = 0; i < previous.length; i++) {
while (previous[i] == random) {
random = Math.round(Math.random() * 4);
}
}
window.location = links[random];
我正在尝试制作一个代码,用于将用户引导到一组网站中的随机网站。这将由谷歌网站中的按钮激活,我只是没有得到HTML部分。无论如何,当我尝试在jsfiddle中运行此代码时,输出只是一个空白屏幕。怎么了?这是我的逻辑
这会将'random的输出推送到空数组
此for循环检查空数组中是否有任何数据
可悲的是,它并没有以这种方式表现。有什么提示吗?
修改:Jsfiddle
答案 0 :(得分:0)
我认为对代码的轻微修改可能会成功,特别强调删除循环:
var links = ["http://www.google.com/", "http://www.cnn.com/", "http://www.bbc.com/", "http://www.nbc.com/"];
var previous = [];
function showLink() {
if (previous.length !== links.length) {
var random = Math.round(Math.random() * ((links.length - 1) - 0) + 0 );
if (previous.indexOf(links[random]) > -1) {
showLink();
} else {
console.log(links[random], previous)
previous.push(links[random]);
}
} else {
console.log('No more links');
}
}
此时只需继续拨打showLink
,直到用完链接为止。
答案 1 :(得分:0)
var links = ["http://www.google.com/", "http://www.cnn.com/", "http://www.bbc.com/", "http://www.nbc.com/"];
var random = Math.round(Math.random() * 4);
var previous = [];
previous.push(random);
for (var i = 0; i < previous.length; i++) {
while (previous[i] == random) {
random = Math.round(Math.random() * 4);
}
}
window.location = links[random];
您错过了一个括号,并且在return
循环之前有一个for
语句。所以当然它没有工作,因为return语句下的代码无法像你编写的那样无法访问。