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