代码审查-随机链接与内存- Javascript
Code review --- Random link with memory -- Javascript
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'选择0到4之间的数字,这对应于数组中的站点
- 一个空数组
这将把'random'的输出推到空数组
for循环检查空数组
中是否有数据- While循环说"ok,如果random选择一个已经在数组'previous'中的数字,我将再次运行random。
- 一旦一个未选择的数字被输出,一个新的窗口打开到所选的站点。
遗憾的是,它不是这样执行的。任何建议吗?
编辑:Jsfiddle
我认为稍微修改一下代码可能会达到目的,特别强调删除循环:
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
,直到链接用完。
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];
您缺少一个括号,并且在for
循环之前有一个return
语句。当然,它不能工作,因为return语句下的代码无法按照您编写的方式访问。
相关文章:
- Javascript闭包-如何防止内存泄漏
- 如何使用Javascript在FireFox中将html从内存动态加载到iframe中
- Javascript图像数组预加载速度和从内存中删除
- HTML5内存游戏-JavaScript功能
- 简单对象的Javascript内存泄漏
- Javascript绘制画布内存泄漏
- 递归Javascript对象是否会导致任何问题(内存泄漏)
- Javascript内存分配
- 跟踪 JavaScript 内存泄漏的工具
- Javascript:将类/对象引用设置为 NULL,内存中的子对象/类会发生什么
- 页面刷新后javascript内存泄漏有问题吗?为什么?
- 当我调用“new”时,JavaScript类的哪些部分会在内存中重新创建
- Javascript中的内存泄漏
- Javascript内存游戏-图像交换
- javascript内存问题
- 如何确保我的谷歌图表数据在Javascript中从内存中删除
- 为什么这个JavaScript会导致内存泄漏
- 是JavaScript(jQuery)和一个处理程序,每次从内存运行或读取
- 我怎么能确定内存被重写了——Javascript
- 代码审查-随机链接与内存- Javascript