变量logincompare_user取自登录名,该变量为我们提供了用户在列表中的位置,并且他们相应的钱在ahorros和monetaria列表中的相同位置。为什么此减法不起作用?

var ahorros = [5000,6000,10000];
var monetaria = [2000,15000,1000];
var registro = [];

function transferencias(ahorros ,monetaria,registro,logincompare_user){
    var cta_ahorro = ahorros[logincompare_user];
    var cta_monetaria = monetaria[logincompare_user];
    registro.push("Entrada a Transferencias " + Math.floor(Date.now()/1000) + '\n');
    var eleccion_cta = prompt('Bienvenid@ a Transferencias, que desea hacer?\n'+
                              "1 - Ahorros a Monetaria\n"+
                              '2 - Monetaria a Ahorros\n'+
                              '0 - Log Out');
    while (eleccion_cta >= 0 && eleccion_cta <= 2){
        if (eleccion_cta == 1){
            var transfer = prompt("Cuanto desea transferir?",0);
            var trans_int = parseInt(transfer,0);
            if (trans_int <= cta_ahorro){
                cta_ahorro = cta_ahorro - transfer;
                cta_monetaria = cta_monetaria + transfer;
            }
            else{
                alert("Error");
                transferencias(ahorros,monetaria,registro,logincompare_user);
            }
        }
        else if (eleccion_cta == 2){
            var transfer_1 = prompt("Cuanto desea transferir?");
            if (transfer_1 <= cta_monetaria && transfer_1 === parseInt(transfer_1)){
                cta_ahorro = cta_ahorro + transfer_1;
                cta_monetaria = cta_monetaria - transfer_1;
            }
            else{
                alert("Ingrese un numero por favor");
                transferencias(ahorros,monetaria,registro,logincompare_user);
            }
        }
        else if (eleccion_cta == 0){
            log_out(logincompare_user,registro,ahorros,monetaria)
        }
        else{
            alert("Opcion Invalida");
            transferencias(ahorros,monetaria, registro,logincompare_user)
        }
    }

最佳答案

您正在将transfer变量添加/减去到cta_ahorrocta_monetaria中,而不是trans_int变量中。 transfer字符串,当您尝试使用 int 变量添加它时,会引起问题。我已更正您的代码,并在下面提到:

var ahorros = [5000,6000,10000];
var monetaria = [2000,15000,1000];
var registro = [];

    function transferencias(ahorros, monetaria, registro, logincompare_user) {
    var cta_ahorro = ahorros[logincompare_user];
    var cta_monetaria = monetaria[logincompare_user];
    console.log(cta_ahorro); // Printing for confirmation
    console.log(cta_monetaria); // Printing for confirmation
    registro.push("Entrada a Transferencias " + Math.floor(Date.now() / 1000) + '\n');
    var eleccion_cta = prompt('Bienvenid@ a Transferencias, que desea hacer?\n' +
            "1 - Ahorros a Monetaria\n" +
            '2 - Monetaria a Ahorros\n' +
            '0 - Log Out');

    while (eleccion_cta >= 0 && eleccion_cta <= 2) {
      if (eleccion_cta == 1) {
        var transfer = prompt("Cuanto desea transferir?", 0);
        var trans_int = parseInt(transfer, 0);
        if (trans_int <= cta_ahorro) {
          cta_ahorro = cta_ahorro - trans_int; // Here is change
          cta_monetaria = cta_monetaria + trans_int; // Here is change
          console.log(cta_ahorro); // Printing for confirmation
          console.log(cta_monetaria); // Printing for confirmation
        }
        else {
          alert("Error");
          transferencias(ahorros, monetaria, registro, logincompare_user);
        }
      }
      else if (eleccion_cta == 2) {
        var transfer = prompt("Cuanto desea transferir?");
        var trans_int = parseInt(transfer, 0);
        if (trans_int <= cta_monetaria) {
          cta_ahorro = cta_ahorro + trans_int; // Here is change
          cta_monetaria = cta_monetaria - trans_int; // Here is change
          console.log(cta_ahorro); // Printing for confirmation
          console.log(cta_monetaria); // Printing for confirmation
        }
        else {
          alert("Ingrese un numero por favor");
          transferencias(ahorros, monetaria, registro, logincompare_user);
        }
      }
      else if (eleccion_cta == 0) {
        log_out(ahorros, monetaria, registro, logincompare_user)
      }
      else {
        alert("Opcion Invalida");
        transferencias(ahorros, monetaria, registro, logincompare_user)
      }
      var eleccion_cta = prompt('Bienvenid@ a Transferencias, que desea hacer?\n' +
            "1 - Ahorros a Monetaria\n" +
            '2 - Monetaria a Ahorros\n' +
            '0 - Log Out');
    }
  }

关于Javascript-使用ParseInt转换后无法减去Ints,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33966927/

10-13 01:53