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

How to apply function to n-th element of two arrays (array of arrays)?

本文关键字:数组 元素 两个 函数 应用于      更新时间:2023-09-26

假设我有两个数组(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]

这通常被称为"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);
你可以

用一个简单的for-loop来完成:

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 兼容性表):

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