1
  function A(a, b) {
     return a[b] * b;
   }
  function B(a) {

     var x = 0;
     for (var i=5; i>0; i--)
     x += A(a, i);

     return x;
  }
      var aValues = [3,5,9,8,7,1];
      var y = B(aValues);

答えは次のようになります:B(1)B(3)B(5)B(7)B(8)B(9)?正しい方向へのプッシュをいただければ幸いです。

4

1 に答える 1

3

実行後、yは80です。完全な配列がに渡されB()ます。のループはB()、の最後の5つの要素を繰り返しaValuesます。Javascriptの配列はインデックス0から始まるため、ループi=5; i>0; i--がインデックス0の配列要素に接触することはありません。

次に、関数a()は現在のアイテムに現在のインデックスを乗算し、結果(xに追加されます)を返します。

したがって、ループインデックスごとに次のようになります。

i=5 -> x += 1 * 5
i=4 -> x += 7 * 4
i=3 -> x += 8 * 3
i=2 -> x += 9 * 2
i=1 -> x += 5 * 1

したがって、ループの後、xには値80が含まれ、この値が返され、yに割り当てられます。

于 2012-12-15T20:39:56.687 に答える