2016-10-24 4 views
2

getBMR関数のパラメータとして配列userInfoの値を使用します。それ、どうやったら出来るの?関数内の配列から別の関数のparamsとして値を渡すJavaScript

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> 
 

 
<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>

は本当に私が得ることができるすべての助けに感謝:

は、ここに私のHTMLです!

ありがとうございます!

+0

こちらの回答をご覧ください:http://stackoverflow.com/questions/19570629/pass-all-the-values-from-an-array-into-a-function-as-parameters – Nicole

答えて

0

あなたのパラメータが一致すると、リストが動的にする必要がない場合は、あなたが行うことができるはず:

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

問題は、あなたが持っているとき、varは宣言したということですが、その範囲はまでのみです関数は実行を終了します。だから、私はこれを行うより良い方法は、必要なパラメータのための別の機能を持っていると思う。ような何か:

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

あなたがgetBMRを呼び出すたびですから、最初に宣言し、割り当てるので、などの他の変数になります。

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

をし、また、より良い方法は、あなたが行うことができる場所にjQueryを使用することです:

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

これは入力の値を返します。

これが役に立ちます。

関連する問題