3

所以我基本上是在做一个储蓄账户系统。用户可以设置一个帐户,并从余额 0 开始,随时取款和存款。前几次它工作得很好,但是当我尝试登录或注销时它给了我 RangeError 。

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);
      }
4

1 回答 1

1

正如一些评论中所建议的,我会将您的 for 循环更改为从零索引开始:

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

for (var a = 0; a < balList.length; a++)
于 2017-03-30T23:42:32.310 回答