将函数中数组的值作为另一个函数JavaScript中的params传递

时间:2016-10-24 23:05:12

标签: javascript arrays function

我想将数组 userInfo 中的值用作 getBMR 函数中的参数。我该怎么做?



function userInput() {
  var gender = document.querySelector('input[name="gender"]:checked').value;
  var length = document.getElementById('length').value;
  var weight = document.getElementById('weight').value;
  var age = document.getElementById('age').value;
  
  if (length || weight || age === (strValue)) {
    length = parseInt(length);
    weight = parseInt(weight);
    age = parseInt(age);
    var userInfo = [gender, length, weight, age];
    return userInfo;
  }
}

function getBMR(gender, length, weight, age) {
// ...
}




谷歌搜索疯狂,但我似乎无法找到解决方案。在数组声明后使用 console.log 我可以清楚地看到数组存储数据。我的问题是将这些数据放在函数之外。

这是我的HTML:



<html>

<head>
</head>

<body>

  <form action="">
    <input type="radio" name="gender" id="gender" value="male" checked="checked">Man<br>
    <input type="radio" name="gender" id="gender" value="female">Kvinna<br>

    <label>Längd</label>
    <input type="number" id="length"></input>

    <label>Vikt</label>
    <input type="number" id="weight"></input>

    <label>Ålder</label>
    <input type="number" id="age"></input>

    <button onclick="userInput()">Hämta BMR</button>
  </form>
  <p id="dittBMR"></p>
</body>

</html>
&#13;
&#13;
&#13;

真的很感谢我能得到的所有帮助!

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您的参数一致且列表不需要是动态的,您应该能够:

function getBMR(userInput()[0], userInput()[1], userInput()[2], userInput()[3]) {
// ...
}

答案 1 :(得分:0)

问题在于,当您声明了var时,其范围仅在函数完成执行之前。因此,我认为更好的方法是为您需要的参数提供单独的功能。类似的东西:

function getLenght() {
     return document.getElementById('length').value;
} 

因此,无论何时调用getBMR,您都应首先声明并分配其他变量,如下所示:

var length = getLength() ;
getBMR(length,...) ;

而且,更好的方法是使用jQuery:

$. ("#length").val();

这将返回输入的值。

希望这会有所帮助。