J'ai un problème avec le code suivant:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Q3</title>
    <script type="text/javascript">

        function showvar(x) {
            let sum = 0;
            let ssq=0;
            let N = x.length;
            for (let i = 0; i < x.length; i++) {

                sum = sum + x[i];
                ssq+=x[i]*x[i];

            }
            let variance=(ssq-sum*sum/N)/(N-1)
            return variance;

        }

        function showsd(x) {
            let sum = 0;
            let ssq=0;
            let N = x.length;
            for (let i = 0; i < x.length; i++) {

                sum = sum + x[i];
                ssq+=x[i]*x[i];

            }
            let variance=(ssq-sum*sum/N)/(N-1)

            let sd=Math.sqrt(variance)
            return sd;
        }

        function display() {
            let numbers = document.getElementById("numbers").value.split(" ");

            for (let i = 0; i < numbers.length; i++) {
                numbers[i] = parseFloat(numbers[i]);
            }
            let v = showvar(numbers);
            let sd = showsd(numbers);
            document.getElementById("display").innerHTML = "variance = " + v;
            document.getElementById("display").innerHTML = "Standard deviation = " + sd;


        }


    </script>


</head>
<body>
<p>
    <br><br>
</p>

<input type="text" id="numbers">
<select>
    <option>Standard deviation</option>
    <option>variance</option>
</select>
<button type="button" onclick="display()">Calculate</button>
<p id="display">answer goes here</p>
</body>
</html>

Je dois faire en sorte que le paragraphe affiche la valeur correcte en fonction de l'option sélectionnée. Ainsi, par exemple, si je mets des nombres et que je choisis la variance, cela me montrera la valeur de la variance. Je n'ai actuellement que du code pour chaque option différente, mais je dois en quelque sorte le mettre ensemble. Toute aide est grandement appréciée.

0
CarterJones 17 mars 2021 à 06:17

1 réponse

Meilleure réponse

Mettez à jour votre fonction d'affichage pour ajouter une condition if:

function display() {
            let numbers = document.getElementById("numbers").value.split(" ");

            for (let i = 0; i < numbers.length; i++) {
                numbers[i] = parseFloat(numbers[i]);
            }
            if(document.getElementById("options").value === "variance") {
                document.getElementById("display").innerHTML = "variance = " + showvar(numbers);
            } else {
                document.getElementById("display").innerHTML = "Standard deviation = " + showsd(numbers);
            }
        }

Ajoutez également un identifiant à la balise select:

<select id="options">
    <option>Standard deviation</option>
    <option>variance</option>
</select>
0
Yash Maheshwari 17 mars 2021 à 04:17