编程,变量/数组的新手

时间:2012-12-15 20:20:44

标签: javascript arrays variables

  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) ? 我会失去任何正确方向的推动。

1 个答案:

答案 0 :(得分:3)

执行y之后是80。 完整数组传递给B()B()中的循环遍历aValues的最后5个元素。 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