-2

以下のオブジェクトとメソッドを使用すると、なぜconsole.log(FizzBuzzPlus.getFizzBuzzCount(20))0 が出力されるのでしょうか?

var FizzBuzzPlus = {
    isFizzBuzzie: function(a) {
        if(a%5 === 0 || a%3 === 0) {
            if (a%5 === 0 && a%3 === 0) {
                return false;
            }
            return true;
        } else {
            return false;
        }
    },

    isFizzBuzzieChecker: function(c) {
        var theFizzBuzzes = [];
        for (var i = 0; i < c; i++) {
            if (this.isFizzBuzzie(i)) {
                theFizzBuzzes += i + " ";
            }
        }
        return theFizzBuzzes;
    },

    getFizzBuzzSum: function(b) {
        var sum = 0;
        for (var i = 0; i < b; i++) {
            if (this.isFizzBuzzie(i)) {
                sum += i;
            }
        }
        return sum;
    },

    getFizzBuzzCount: function(c) {
        var count = 0;
        for (var i = 0; i < c; i++) {
            if (this.isFizzBuzzie(i)) {
                count++;
            }
        return count;
        }
    }
};

console.log(FizzBuzzPlus.isFizzBuzzieChecker(20));
console.log(FizzBuzzPlus.getFizzBuzzSum(20));
console.log(FizzBuzzPlus.getFizzBuzzCount(20));

これが Codecademy の FizzBu​​zz だとわかる人もいるかもしれません。オンラインの JavaScript エディターを使用してオブジェクトをいじっています。メソッドの出力結果は常に 0 です。3 または 5 で割り切れる 0 ~ 20 の数値の量を返す必要がありますが、3 と 5 の両方ではありません。

4

2 に答える 2