我已经编写了以下代码。想法是遍历两个数组,以便在每个索引处将内容相乘在一起,然后将其记住并添加到下一个索引等的乘积中。我无法弄清楚我编写的代码出了什么问题。谁能告诉我这是怎么回事?谢谢!

function main() {
    var first = [1,2,3,4];
    var second = [5,6,7,8];
    var sum = 0;

    function iterate(a, fun) {
        var n; n = a.length;
        var i;

        for (i=0; i<n; i++) {
            fun(a[i]);
         }
    }

    multiply();

    function multiply(x,y) {
        iterate(first, out());

         function out(total1) {
            x = total1;

             iterate(second, inn());

             function inn(total2){

                 y = total2;

                 sum += x*y;

             }
        }
     }

    document.write(sum);
}

main();

最佳答案

代替

iterate(first,out());


你需要

iterate(first,out);


您想将函数out传递给iterate,而不是没有参数的调用out的结果,这就是您现在正在做的。

同样

iterate(second, inn());


应该

iterate(second, inn);

关于javascript - 两个数组上的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5775718/

10-11 12:48