-1

これをJSで動作させようとしています:

var calculate = function(votesA, votesB, votesC) {

    var total = votesA + votesB + votesC;

    function Results(resultsA, resultsB, resultsC) {
        this.resultsA = resultsA;
        this.resultsB = resultsB;
        this.resultsC = resultsC;
    }

    var curResults = new Results(votesA, votesB, votesC);

    curResults.resultsA = (votesA / total) x 100;
    curResults.resultsB = (votesB / total) x 100;
    curResults.resultsC = (votesC / total) x 100;

    console.log(curResults.resultsA, curResults.resultsB, curResults.resultsC);
}

calculate(5,4,8);
calculate(5,6,8);
calculate(6,8,9);

なぜ機能しないのかはわかりませんが、curResults で変数を参照する方法に関係しているように感じます

4

1 に答える 1

2

JavaScript の乗算演算子は*であり、 ではありませんx

次のx行では、「予期しない識別子」エラーが発生しています。

curResults.resultsA = (votesA / total) x 100;
curResults.resultsB = (votesB / total) x 100;
curResults.resultsC = (votesC / total) x 100;

したがって、それらを次のように変更します。

curResults.resultsA = (votesA / total) * 100;
curResults.resultsB = (votesB / total) * 100;
curResults.resultsC = (votesC / total) * 100;

なぜ機能しないのかわかりませんが、変数の参照方法に関係しているように感じます curResults

いいえ、その部分は問題ありません。余談ですが、上記の 3 行でこれらの値をすぐに上書きすると、コンストラクターでthis.resultsA = resultsA;(and resultsBand C) を割り当てても意味がありません。Results()

于 2013-01-31T12:27:09.487 に答える