簡體   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