代码工作室javascript

代码工作室javascript,javascript,code.org,Javascript,Code.org,所以我基本上是在做一个储蓄账户系统。用户可以建立一个帐户,从余额为0开始,随时取款和存款。它在最初的几次运行得很好,但是当我尝试登录或注销时,它会给我一个范围错误 setScreen('LogIn'); var balance; var curbal = []; var totalAccts=[]; onEvent("saveAcct", "click", function() { var username = getText('c

所以我基本上是在做一个储蓄账户系统。用户可以建立一个帐户,从余额为0开始,随时取款和存款。它在最初的几次运行得很好,但是当我尝试登录或注销时,它会给我一个范围错误

setScreen('LogIn');
      var balance;
      var curbal = [];
      var totalAccts=[];
      onEvent("saveAcct", "click", function() {
        var username = getText('createUserInput');
        var password = getText('createPassInput');
        appendItem(totalAccts, getText('createUserInput') + " " + 
getText('createPassInput') + " ");
        console.log("Username: " + username + " Password: " + password);
        console.log(totalAccts);
        setScreen('LogIn');
      });

      onEvent('makeAcct', 'click', function(){
        setScreen('CreateAcct');
        setText('createUserInput', "");
        setText('createPassInput', "");
        setText("userInput", "");
        setText("passInput", "");
        hideElement('alert');
      });

      onEvent('addMoney', 'click', function(){
        setNumber('balance', balance + getNumber('addInput'));
        balance = balance + getNumber('addInput');
        setNumber('addInput', '');
        console.log(balance);
      });

      onEvent('subMoney', 'click', function(){
        setNumber('balance', balance - getNumber('subInput'));
        balance = balance - getNumber('subInput');
        setNumber('subInput', '');
        console.log(balance);
      });

      onEvent('login', 'click', function(){
        balance = 0;
        changeEnBal(totalAccts, curbal);
      });

      onEvent('logout', 'click', function(){
        changeExBal(totalAccts, getNumber('balance'), curbal);
        hideElement('alert');
        setText('balance', 0);
        setText("userInput", "");
        setText("passInput", "");
        setScreen('LogIn');
      });

      onEvent("goBack", "click", function() {
        setScreen('LogIn');
      });

      function changeEnBal(list, balList) {
        var user = getText('userInput');
        var pass = getText('passInput');
        for (var i = 0; i < list.length; i++) {
            if (list[i] === (user + " " + pass + " ")) {
              setScreen('Account');
            } else {
              for (var a = 0; a < balList.length; a++) {
              if (list[i] === (user + " " + pass + " " + balList[a])) {
                balance = balList[a];
                setNumber('balance', balList[a]);
                setScreen('Account');
                console.log(balList[a]);
              }
            } 
          }
        }

        for (var b = 0; b < balList.length; b++) {
          if (balList[b] != (user + " " + pass + " " + balList[b])){
            showElement('alert');
          }
        }
      }
      function changeExBal(list, curBal, balList) {
        var user = getText('userInput');
        var pass = getText('passInput');
        for (var i = 0; i < list.length; i++) {
            if (list[i] === (user + " " + pass + " ")) {
              list[i] = user + " " + pass + " " + curBal;
              appendItem(curbal, curBal);
              console.log(curbal);
              console.log(list[i]);
            } else {
                for (var a = 0; a < balList.length; a++) {
                if (list[i] === (user + " " + pass + " " + balList[a])) {
                  balList[a] = curbal;
                  list[i] = user + " " + pass + " " + curBal;
                }
              }
            } 
        }
        console.log(totalAccts);
      }
setScreen('LogIn');
var余额;
var-curbal=[];
var totalAccts=[];
OneEvent(“保存帐户”,“单击”,函数(){
var username=getText('createUserInput');
var password=getText('createPassInput');
appendItem(totalAccts,getText('createUserInput')+“”+
getText('createPassInput')+“”);
console.log(“用户名:“+Username+”密码:“+Password”);
控制台日志(totalAccts);
设置屏幕(“登录”);
});
OneEvent('makeAcct','click',function(){
设置屏幕(“CreateAcct”);
setText('createUserInput',“”);
setText('createPassInput',“”);
setText(“用户输入”,“用户输入”);
setText(“passInput”,即“”);
隐藏元素(“警报”);
});
OneEvent('addMoney','click',函数(){
setNumber('balance',balance+getNumber('addInput'));
余额=余额+getNumber('addInput');
设置编号('addInput','');
控制台日志(平衡);
});
OneEvent('subMoney','click',function(){
setNumber('balance',balance-getNumber('subInput'));
balance=balance-getNumber(“子输入”);
setNumber('子输入','');
控制台日志(平衡);
});
OneEvent('登录','单击',函数()){
余额=0;
changeEnBal(总账户、限制账户);
});
OneEvent('注销','单击',函数()){
changeExBal(总账户、getNumber(‘余额’)和curbal);
隐藏元素(“警报”);
setText('余额',0);
setText(“用户输入”,“用户输入”);
setText(“passInput”,即“”);
设置屏幕(“登录”);
});
OneEvent(“返回”、“单击”、函数(){
设置屏幕(“登录”);
});
功能变更栏(列表、列表){
var user=getText('userInput');
var pass=getText('passInput');
对于(变量i=0;i
正如一些评论中所建议的那样,我会将for循环更改为以零索引开始:

for (var i = 0; i < list.length; i++)
for(变量i=0;i

for(var a=0;a
为什么要将
i
初始化为-1?这将导致
未定义
,因为带括号的数组访问不理解负索引数组从索引0开始,而不是从-1开始,因此您可能需要更改for循环声明。此外,我们需要看到一些数据,您正在发送的名单和棒球。这是一个苹果应用程序?如果是的话,你能提供一个项目的链接吗?这是代码的链接,正如你们所说,appI更改了for循环的索引。
for (var a = 0; a < balList.length; a++)