Javascript 是否存在使用reduce()方法创建数组以存储名称:值对的情况?
我的请求是帮助在JavaScript数组reduce()方法中将arr用作函数参数 读取后,reduce()方法用于累计数组的总数;reduce()方法用于将数组值累积(或合计)为单个值 我试图理解创建满足其块代码中详细说明的特定条件的值数组的目的 reduce()方法语法为 array.reduce(函数(total、currentValue、currentIndex、arr)、initialValue) 其中currentIndex和arr是可选的 我看到了下面的例子Javascript 是否存在使用reduce()方法创建数组以存储名称:值对的情况?,javascript,arrays,methods,Javascript,Arrays,Methods,我的请求是帮助在JavaScript数组reduce()方法中将arr用作函数参数 读取后,reduce()方法用于累计数组的总数;reduce()方法用于将数组值累积(或合计)为单个值 我试图理解创建满足其块代码中详细说明的特定条件的值数组的目的 reduce()方法语法为 array.reduce(函数(total、currentValue、currentIndex、arr)、initialValue) 其中currentIndex和arr是可选的 我看到了下面的例子 var issues
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
}, [] );
答案是:评论数量:1,id:14383618
我的选择是使用filter()方法,而不是上面提到的方法。我不确定您在寻找什么,但有一些用例可以应用这些辅助方法(
reduce/filter/map
)。正如您所说,对于这个特定场景,您将更喜欢过滤器
,这是一个完美的选择
var lonelyComments = issues.filter(function(issue) {
return (issue.comments_count === 1)
}, []);
reduce
用于基于所有项将数组
缩减为其他内容。假设您有一个2D数组
,并希望从中创建一个对象。然后您可以在这种情况下使用reduce
,如下所示
var array = [['name', 'john'], ['age', '23']];
var obj = array.reduce(function(accumulator, item) {
accumulator[item[0]] = item[1];
return accumulator;
}, {});
以上只是一个简单的用例,还有更复杂的用例,
reduce
可以节省您的时间。我不明白您的问题是什么?祝您好运@Vipin Kumar!谢谢你的回答。如果您能提供有关使用reduce方法在更复杂的解决方案中获得结果的信息,我将不胜感激。我希望扩展到仅在返回总计的情况下应用reduce()之外。