【问题标题】:How can I return the values to use in the first function?如何返回要在第一个函数中使用的值?
【发布时间】:2021-09-18 05:11:59
【问题描述】:

我目前正在参加暑期编程课程,以便在学校放暑假期间了解更多信息。在其中一项作业中,我需要使用给定的变量来计算两个值的幂。我事先不知道这些值,因为当我尝试运行程序时网站会生成不同的值。我一整天都把头撞在墙上,所以任何帮助我朝正确方向轻推的帮助都非常感谢!下面的作业示例。

**function laskuFunktio() {
    var luku = noudaArvo("luku");
    var eksp = noudaArvo("eksponentti");
    
    console.log("Luku " + luku + " potenssiin " + eksp + " on:");
    console.log(laskePotenssi(luku, eksp));
}**

function noudaArvo() { 
    luku = document.getElementById("luku").value        
    eksp = document.getElementById("eksponentti").value;
    return ???
}

function laskePotenssi() {
    if (eksp === 0) {
        tulos = 1;
    }
    var tulos = Math.pow(luku, eksp);
    return tulos 
}

第一个函数是预先确定的,所以我无法编辑它,但是无需编辑或访问 HTML 文件就可以进行分配。我刚刚编辑了返回语句,以显示我目前陷入困境的地方。再次感谢您的帮助!

【问题讨论】:

  • 好吧,如果你想知道 noudaArvo() 的返回值应该是什么,解释一下函数应该做什么可能会很有用,因为你用于函数和变量的名称是不言自明(无论如何,不​​适合说英语的人)。

标签: javascript return return-value


【解决方案1】:

函数可能只返回一件事,但您似乎希望noudaArvo() 返回基数和指数的值。这可以通过回答一个数组来完成(“一件事”可以包含两个值)。

您在laskePotenssi 的第一次尝试使用变量telos,然后再声明它。先声明let

这可以用更漂亮、更简洁的代码来完成,但我已经尽可能多地从 OP 中维护了。

function noudaArvo() { 
    luku = document.getElementById("luku").value        
    eksp = document.getElementById("eksponentti").value;
    return [luku, eksp];
}

function laskePotenssi(luku, eksp) {
    let tulos;
    if (eksp === 0) {
        tulos = 1;
    } else {
      tulos = Math.pow(luku, eksp);
    }
    return tulos 
}

function compute() {
  let [luku, eksp] = noudaArvo();
  let result = laskePotenssi(luku, eksp)
  alert(`the answer is ${result}`)
}
<input id="luku" placeholder="enter base"/>
<input id="eksponentti" placeholder="enter exponent"/>
<button onclick="compute()">Compute</button>

【讨论】:

    【解决方案2】:

    查看 noudaArvo() 的调用方式。它接受单个参数并期望返回值。它传递的参数似乎是它想要其值的元素的 ID。因此,不要在 getElementByID() 中对 ID 进行硬编码,使用参数(您的 noudaArvo() 函数头缺少该参数)返回该单个值,laskuFunktio() 调用它两次以获取两个值。

    laskePotenssi() 需要接受两个参数。这是一个具有 2 个参数的函数示例,并在函数体中使用它们来返回它们的总和。这有帮助吗?

    function test(param1, param2){
        foobar = param1 + param2;
    
        return foobar;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-02-10
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 2020-11-20
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多