如何将函数应用于两个数组(数组数组)的第n个元素?

时间:2013-11-13 14:05:41

标签: javascript arrays function

假设我有两个数组(A和B),它们是一个函数的参数,它将两个值作为参数(a和b)。

如何以这样的方式使用函数和数组:我获得另一个数组C,它存储将A的第n个元素与B的第n个元素放在函数中的结果......

var A = [1,2,3,4];
var B = [1,2,3,4];

function myFunction(a,b)
{
return a+b ;
}

C 应该是:

[2,4,6,8]

2 个答案:

答案 0 :(得分:2)

这通常称为“zipWith”,可以这样实现:

function zipWith(a, b, callback) {
    var c = [];
    for (var i = 0, length = a.length; i < length; i++) {
        // if (typeof b[i] == 'undefined') throw some error or break, your choice
        c.push(callback(a[i], b[i]));
    }
    return c;
}

c = zipWith(A, B, myFunction);

答案 1 :(得分:1)

你可以用一个简单的for - 循环:

来做到这一点
var C = new Array(A.length);
for (var i = 0; i < A.length; i++)
{
    C[i] = myFunction(A[i], B[i]);
}

或使用Array.map方法(虽然请参阅ECMAScript 5 compatibility table):

var C = A.map(function(a, i) { return myFunction(a, B[i]); });