2

在 jsFiddle 环境中,我希望创建一个循环,以随机顺序显示数字 1 到 10,不重复。

jsFiddle在这里

除其他外,在 jsFiddle 环境中使用全局变量有困难。

将不胜感激:

  1. 解释 jsFiddle 中的全局变量
  2. 使我的代码工作(期望的目标:通过循环以随机顺序打印数字 1 到 10)

谢谢

对于后代,这里是来自 jsFiddle 的代码:

HTML:

<div id="response"></div>
<input type="button" id="mybutt" value="Get Next" />

javascript/jQuery:

var cnt;
var window.arrDone = [];

function nextQues() {
    return Math.floor(Math.random()*3) + 2;
}

$('#mybutt').click(function() {
    cnt++;
    console.log('Count is now: ' + cnt);
    if (cnt < 10) {
        nn = nextQues();
        console.log('Testing: ' + nn);
        if (window.arrDone.indexOf(nn) > -1) {
            console.log('Already Seen: ' + nn);
        }else{
            console.log('FOUND NEW: ' + nn);
            window.arrDone.push(nn);
        }
        $('#mybutt').trigger('click');
    }
});

为后代:

任何在研究自己的解决方案时偶然发现这个问题的人也应该查看这个相关的 SO 帖子:

javascript命名空间被污染了吗?

  • 确保您阅读了 Joe Enos 的答案,并在下方评论讨论
4

1 回答 1

3

尝试这个:

var cnt = 0;
var window = {};
window.arrDone = [];

演示在这里

jsfiddle 中的全局变量与网站中的相同。虽然最好是no wrap在jsfiddle的左上角菜单中使用,并且有自己的.ready()功能。否则,它会将您的代码包装onload在您网站上没有的函数中。

于 2013-09-16T19:17:05.257 回答