首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否存在使用reduce()方法创建数组来存储name:value对的情况?

是否存在使用reduce()方法创建数组来存储name:value对的情况?
EN

Stack Overflow用户
提问于 2018-01-01 14:51:33
回答 1查看 50关注 0票数 2

我的请求是在JavaScript数组reduce()方法中使用arr作为函数参数的帮助。

在读取之后,reduce()方法用于为数组累加总数;reduce ()方法用于将数组值累加(或合计)为单个值。

我正在试图理解创建满足特定条件的值数组的目的,如其块代码中所详细描述的那样。

reduce()方法语法为

Array.reduce(函数(total,currentValue,currentIndex,arr),initialValue),其中currentIndex和arr是可选的。

我看到了下面的例子。

代码语言:javascript
运行
复制
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()方法,而不是上述方法。

EN

回答 1

Stack Overflow用户

发布于 2018-01-01 15:23:56

我不确定你在寻找什么,但是有一些应用这些助手方法(reduce/filter/map)的用例。正如您所说的,对于这个特定的场景,您将更喜欢filter,这是一个完美的选择。

代码语言:javascript
运行
复制
var lonelyComments = issues.filter(function(issue) {
    return (issue.comments_count === 1)
}, []);

reduce用于根据所有项将array简化为其他内容。假设您有一个2D array,并且想要从它创建一个对象。在这种情况下,您可以使用reduce,如下所示。

代码语言:javascript
运行
复制
var array = [['name', 'john'], ['age', '23']];

var obj = array.reduce(function(accumulator, item) {
  accumulator[item[0]] = item[1];
  return accumulator;
}, {});

上面只是一个简单的用例,还有更复杂的用例,reduce可以帮你节省时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48047722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档