我的请求是在JavaScript数组reduce()方法中使用arr作为函数参数的帮助。
在读取之后,reduce()方法用于为数组累加总数;reduce ()方法用于将数组值累加(或合计)为单个值。
我正在试图理解创建满足特定条件的值数组的目的,如其块代码中所详细描述的那样。
reduce()方法语法为
Array.reduce(函数(total,currentValue,currentIndex,arr),initialValue),其中currentIndex和arr是可选的。
我看到了下面的例子。
var issues = [
{
comments_count: 5,
id: 144948778,
},
{
comments_count: 1,
id: 14383618,
}]
var lonelyComments = issues.reduce(function(arr, issue){
if (issue.comments_count == 1){
arr.push(issue);
}
return arr
}, [] );
答案是: comments_count: 1,id: 14383618
我的选择是使用filter()方法,而不是上述方法。
发布于 2018-01-01 07:23:56
我不确定你在寻找什么,但是有一些应用这些助手方法(reduce/filter/map
)的用例。正如您所说的,对于这个特定的场景,您将更喜欢filter
,这是一个完美的选择。
var lonelyComments = issues.filter(function(issue) {
return (issue.comments_count === 1)
}, []);
reduce
用于根据所有项将array
简化为其他内容。假设您有一个2D array
,并且想要从它创建一个对象。在这种情况下,您可以使用reduce
,如下所示。
var array = [['name', 'john'], ['age', '23']];
var obj = array.reduce(function(accumulator, item) {
accumulator[item[0]] = item[1];
return accumulator;
}, {});
上面只是一个简单的用例,还有更复杂的用例,reduce
可以帮你节省时间。
https://stackoverflow.com/questions/48047722
复制