给定一个数组数组,我想调用一个函数将每个数组作为参数传递

时间:2014-03-28 19:43:12

标签: javascript functional-programming underscore.js

我有一个数组数组:

var data = [[2,2], [6,4], [300,500]];

我有一个函数,它接受一些参数并返回一个值。

var sum = function (a, b) { return a + b; }

我想将函数应用于数组中的每个项目,例如

FOO(data, sum) === [sum(2,2), sum(6,4), sum(300,500)] === [4, 10, 800]

我希望下划线能够执行“FOO”所做的功能。但我没有看到任何东西。 _.map很接近,但并不完全。

我知道如何实现FOO功能。

var FOO = function (arrayOfArrays, iterator, context) { 
    return _.map(arrayOfArrays, function (array) { 
        return iterator.apply(context, array); 
    }
)}; 

我的问题是如何调用 FOO 我猜测上述模式在函数式编程中很常见,因为已经有一个完善的,与语言无关的名称这个功能。

1 个答案:

答案 0 :(得分:0)

在我看来,已经有一个标准的Javascript方法用于数组,forEach(),它可以做你想要的。例如:

data.forEach(sum);

那么,你真的需要一个新的FOO吗?如果是这样,你可以将它命名为“forEach”,并将上述逻辑包装起来。