0

だから私はJSで古き良き「FizzBu​​zz」チャレンジを試みています。しかし、最初の課題を完了することができたので、追加しようとしています。「FizzBu​​zz」チャレンジに慣れていない人向け。1..100最初に、数字と で割り切れる数字を出力したい場合は、代わりに;3という単語を出力します。=>で割り切れるもの。および => の両方で割り切れるもの。私がやろうとしているのは、配列を受け入れる関数を作成し、適切な文字列を配置して配列を返すことです。例えば:Fizz35BuzzFizzBuzz

function super_fizzbuzz(array){
    var super_array = [];

    for (var array=1; array<=array.length; array++)
    {
        if (array % 15 == 0)
            super_array.push("FizzBuzz");
        else if (array % 5 == 0)
            super_array.push("Buzz");
        else if (array % 3 == 0)
            super_array.push("Fizz");
        else
            super_array.push(array);
    }
    return super_array;
    }

    console.log(super_fizzbuzz([3,10,15,19]));

したがって、理想的には、答えは を返す必要があります["Fizz", "Buzz", "FizzBuzz", 19]が、空の配列を返すだけです。Rubyでこれを行ったところ、問題なく動作させることができました。ruby のスキルを JS の練習に変換して、もう少し慣れようとしています。どんな提案でも大歓迎です。

4

3 に答える 3

3

あなたarrayは配列とそのインデックスの両方になろうとしています。一度array = 1、それから、そしてarray.lengthです。ループは開始する前に終了します。開始値のままです。undefined1 <= undefinedfalsesuper_array[]

ループ変数の名前を変更します。また、配列は ではなく から始まり、0ではなくで1終わります。< array.length<=

于 2015-05-18T02:08:19.957 に答える
2

ここ:

for (var array = 1; array <= array.length; array++)

「配列」と呼ばれる関数パラメーターの値を、割り当てて上書きしまし1た。数値の.lengthプロパティがないため、ループが 1 回の反復を実行することはありません。

渡した配列の値を反復処理する場合は、インデックス変数 (配列パラメーターとは異なる名前の変数) を使用し、それを使用して要素にアクセスします。

  for (var i = 0; i < array.length; i++) {
      if (array[i] % 15 == 0)
          super_array.push("FizzBuzz");
      // etc
于 2015-05-18T02:06:50.430 に答える
0

どうぞ

function super_fizzbuzz(array){
          var super_array = [];

          for (var i=0; i<=array.length-1; i++)
          {
              if (array[i] % 15 == 0)
                  super_array.push("FizzBuzz");
              else if (array[i] % 5 == 0)
                  super_array.push("Buzz");
              else if (array[i] % 3 == 0)
                  super_array.push("Fizz");
              else
                  super_array.push(array[i]);
          }
          return super_array;
          }

          console.log(super_fizzbuzz([3,10,15,19]));
于 2015-05-18T02:07:24.707 に答える