2012-12-15 75 views
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) ? 我失去了任何推动正确的方向将不胜感激。新编程,变量/阵列

+0

这是什么语言和来自哪里的码值80? –

+2

我猜这是Javascript?通过回答,你的意思是'y'的价值吗?因为如果是这样的话,y应该只是一个整数... – John

+0

http://jsfiddle.net/E7dXP/在一个小提琴中试试这个:) – povilasp

回答

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包含被返回并分配到y

+0

谢谢你的帮助。这是我需要的解释。 – Anthony