0

引数として 2 つの値 (a と b) を取る関数の引数となる 2 つの配列 (A と B) があるとします。

A の n 番目の要素と B の n 番目の要素を一緒に関数に配置した結果を格納する別の配列 C を取得するように、関数と配列を使用するにはどうすればよいですか...

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

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

Cよりも次のようにする必要があります。

[2,4,6,8]
4

2 に答える 2

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);
于 2013-11-13T14:11:16.373 に答える
1

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]); });
于 2013-11-13T14:11:31.027 に答える