假设我有两个数组(A 和 B),它们将作为函数的参数,将两个值作为参数(a 和 b)。
如何以这样的方式使用函数和数组,以便获得另一个数组 C,该数组 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]
假设我有两个数组(A 和 B),它们将作为函数的参数,将两个值作为参数(a 和 b)。
如何以这样的方式使用函数和数组,以便获得另一个数组 C,该数组 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
:
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]); });