为什么使用_.each它只返回原始列表

时间:2015-04-10 15:44:36

标签: javascript functional-programming underscore.js lodash

我明显做错了什么,但我似乎无法获得我正在寻求使用_.each

的价值观。

我有许多键值对,其中每个值都是一个对象数组。我想从数组中的每个对象中获取一个值,然后对这些值求和。代码:

var step = {key: array[1], key1: array[3]}

array = [object, object . . .]
object = {objKey: value, objKey1: value}

我想得到:

var step1 = {key: value, key: value}//where value is the sum of objKey
 in each object in the array for each key in step.

我使用以下内容尝试获取:

_.each(step, function(n){return _.compact(_.pluck(n,
 "amount")).reduce(function (a, b) {return a + b;}, 0);})

1 个答案:

答案 0 :(得分:1)

是的,每个()都返回原始列表,但这并不是真的。 each()为列表中的每个项执行一个函数。例如,您可以在屏幕上为每个项目打印一些内容,但是您不希望对每个项目进行一些转换,因为它不会为您提供每个函数执行的结果。

相反,您可以使用map()。 map()返回为列表中的每个项调用函数的结果,因此您可以获得结果列表,然后可以避免返回原始列表。