Javascript-将返回的变量传递给另一个函数

Javascript - passing returned variable to another function

本文关键字:另一个 函数 变量 返回 Javascript-      更新时间:2023-09-26

我正试图将结果值从传递给projectYears()函数到projectInvestment()函数,然后该函数将写入div标记。我得到错误"结果未定义错误"。对我来说,这是有道理的。所有代码都按预期工作。有人能告诉我如何做到这一点吗。

function projectInvestment(nameId, investmentId, interestId, yearsId, amountId) {
    var inputName = document.getElementById(nameId).value;
    var inputInvestment = parseFloat(document.getElementById(investmentId).value);
    var inputInterest = parseFloat(document.getElementById(interestId).value);
    var inputYears = parseInt(document.getElementById(yearsId).value);
    var inputAmount = parseFloat(document.getElementById(amountId).value);
    projectYears(inputInvestment, inputInterest, inputYears);
    var outputString = projectYears(result);
    document.getElementById("outputDiv").innerHTML = outputString;
}
function projectYears(inInvest, inInterest, inYears) {
    var interest = parseFloat(inInterest / 100);
    var interestAmt = parseFloat(inInvest * interest);
    var predictedInvest = parseFloat(inInvest + interestAmt);
    var result = "<br /> Investment Schedule for <b>$" + inInvest.toFixed(2) +
        " </b>at <b>" + inInterest + "% </b>annual interest for <b>" + inYears + "</b> years <br /><br />";
    result += "<table border='1' align='center'><tr><th>Year</th><th>Amount</th>";
    //for loop to loop through the years
    for (var x = 1; x <= inYears; x++) {
        result += "<tr><td>" + x + "</td><td>" + predictedInvest.toFixed(2) + "</td></tr>";
        interestAmt = predictedInvest * interest;
        predictedInvest = (predictedInvest + interestAmt);
    }
    result += "</table>";
    return result;
    //document.getElementById("outputDiv").innerHTML = result;
}

您正在传递一个未定义的名为result的变量。

参见projectInvestment函数中的此行:

var outputString =  projectYears(result);

看起来,根据projectYears的函数定义,您应该传入您在此行上方创建的一些变量。

var outputString = projectYears(inputInvestment, inputInterest, inputYears);
var inputAmount = parseFloat(document.getElementById(amountId).value);
var outputString = projectYears(inputInvestment, inputInterest, inputYears);
document.getElementById("outputDiv").innerHTML = outputString;