繁体   English   中英

我的for循环不起作用,我也不知道为什么

[英]my for loop doesn't work and I don't know why

$(document).onload(function(){
    for (var i = 0; i <max; i++) {
        if(pi[i]===undefined||pi[i]===null||pi[i]==0){
            pi[i]=1;
        }
    }
});
alert('hello');

我已经安装了jQuery,并且所有变量都已在代码中的前面进行了设置,但是for循环之后的所有内容均无法正常工作,例如alert('hello')。 如果有人可以看到与此有关的问题,请告诉我。

编辑

var max=438;
localStorage.setItem('max', max);
var pi=[];
pi=JSON.parse(localStorage.getItem('pi'));
var i=localStorage.getItem('i');
var url1=Math.floor((Math.random() * max) + 1);
var url2=Math.floor((Math.random() * max) + 1);
if(url1==url2){

url2=url2+2;
if(url2>max){
    url2=url2-max;
}
}
document.getElementById('imgimg1').src='../img/'+url1+'.gif';
document.getElementById('imgimg2').src='../img/'+url2+'.gif';
var v1=url1-1;
var v2=url2-1;
function vote1() {
    pi[v1]=pi[v1]+(pi[v2]/pi[v1]);
    localStorage.setItem('pi',JSON.stringify(pi));
    location.reload();
}
function vote2() {
    pi[v2]=pi[v2]+(pi[v1]/pi[v2]);
    localStorage.setItem('pi',JSON.stringify(pi));
    location.reload();
}
$(document).load(function(){
    for (var i = 0; i <max; i++) {
        if(pi[i]===undefined||pi[i]===null||pi[i]==0){
            pi[i]=1;
        }
    }
});
alert(pi);

这是完整的代码

假设所有变量设置正确,您的代码应为:

$(document).load(function(){
    for (var i = 0; i <max; i++) {
        if(pi[i]===undefined||pi[i]===null||pi[i]==0){
            pi[i]=1;
        }
    }
    alert('hello');
});

也许这会有所帮助,但是,我不知道您将这些变量设置为什么。 请注意,不是使用文档加载,而是使用jquery ready事件。

 <div id="message"></div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script> var max = 100; var pi = []; $(function() { for (var i = 0; i <max; i++) { if(pi[i]===undefined||pi[i]===null||pi[i]==0){ pi[i] = 1; } } $('#message').text(pi.length); }); </script> 

$(document).onload(function(){
    for (var i = 0; i <max; i++) {
        if(typeof pi[i]==="undefined"||pi[i]===null||pi[i]==0){
            pi[i]=1;
        }
    }
});
alert('hello');

我假设您已将“最大”设置为某个正数。 我认为问题是您编码了$(document)。 onload事件 (...当你应该有编码的$(document)。 准备好 (...希望帮助!PK

试试这个:

/* assuming this */
var max = 4; // for example
var pi = [0, 0, 0, 0];
/* end assuming this */

$(document).ready(function() {
    for (var i = 0; i < max; i++) {
        if(pi && pi[i] && pi[i] < 0) {
            pi[i] = -1;
        } else {
            pi[i] = 1;
        }
    }
    alert(JSON.stringify(pi));
});

它应该写为[[1,1,1,1]

[编辑]

关于整个代码,为什么在准备好文档后需要循环?

为什么不像这样初始化pi

var max=438;
localStorage.setItem('max', max);
var pi=[];
pi=JSON.parse(localStorage.getItem('pi'));
for(var i = 0; i < max; i++) {
    pi[i] = 1;
}
[...]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM