Javascript code studio

So, I basically create a savings account system. The user can set up an account and start with a balance of 0 when withdrawing and depositing money whenever they want. It works fine the first few times, but then it gives me a RangeError when I try to login or logout.

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

      

+3


source to share


1 answer


As suggested in some comments, I would change your loops to start from index zero:

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

      



and

for (var a = 0; a < balList.length; a++)

      

+1


source







All Articles