JavaScript 使用reduce 从数组创建带有计数的对象

2023-12-06

我正在尝试解决这个小问题,我需要在哪里使用reduce创建一个包含每个项目计数的对象。

我以为我明白了reduce有效,使用一个函数将多个值减少到一个,但我不知道这是如何工作的。

有什么想法或建议吗?对此,我真的非常感激。

// var people = ['josh', 'dan', 'sarah', 'joey', 'dan', 'josh', 'francis', 'dean'];

// can reduce be used to get: 

// { 
//   josh: 2,
//   dan: 2, 
//   sarah: 1,
//   joey: 1,
//   francis: 1,
//   dean: 1
// }

如您所见,您需要一个对象作为数组项目计数的结果集。

为了获得结果,您可以采用默认值 0 加 1 来计算实际值,同时使用给定名称作为属性进行计数。

var people = ['josh', 'dan', 'sarah', 'joey', 'dan', 'josh', 'francis', 'dean'],
    counts = people.reduce(function (c, p) {
        c[p] = (c[p] || 0) + 1;
        return c;
    }, Object.create(null));
    
console.log(counts);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 使用reduce 从数组创建带有计数的对象 的相关文章

随机推荐

  • asp.net 在中继器中是否可以从另一个类调用公共函数?

    假设我有一个中继器 它在代码隐藏中使用了一个名为 Test 的公共函数
  • 很棒的字体不显示图标

    我正在使用 Font Awesome 并且不希望通过 HTTP 添加 CSS 我下载了 Font Awesome 并将其包含在我的代码中 但 Font Awesome 显示的是带边框的方框而不是图标 这是我的代码 div style fon
  • 将其值设置为加密的 SAML 2 令牌时授权标头为 null

    我正在使用 Thinktechture Identity Server 通过 WS Trust 协议颁发 SAML 安全令牌 然后我使用包含令牌的授权 http 标头调用我的 WEB Api 使用 Thinktechture Identit
  • 如何在单独的文件中传递 Java 命令行选项?

    有没有办法启动 Oracle 的 Java exe 并让它从 Windows 上的文本文件获取命令行选项 我希望能够做的是这样的 java exe optionsFile myOptionsFile txt MyClass 其中 myOpt
  • Aws-Amplify:manifest.json 和 env.json 加载 index.html

    我正在构建的React应用程序有一个manifest json和一个env json 如下所示 但是 当我使用 AWS Amplify 将网站发布到 S3 存储桶时 manifest json 和 env json 会加载我的 index
  • Cocoa Pods 需要完全重新安装

    的背景 我对来自 NET 环境的 Unix 有点陌生 但我现在了解的足够多 足以让我陷入麻烦 我正在使用的现有代码使用 Cocoapods 因此我尝试安装 Cocoapods 最初 当我安装它时 它失败了 说它需要更新版本的 Ruby 为了
  • 在多线程应用程序中使用 libmysqlclient

    我正在 Linux 平台上构建一个 C 应用程序 我需要使用 libmysqlclient 来连接数据库 我下载了Linux源代码包mysql connector c 6 0 2 tar gz 我按照说明编译了它 我得到以下库 libmys
  • 检索包含指定点的矩形集

    我不知道如何以表演的方式实现这一点 所以我决定问你们 我有一个矩形列表 实际上只是 atm 正方形 但稍后我可能必须迁移到矩形 所以让我们坚持使用它们并使其更通用 在二维空间中 每个矩形由两个点指定 矩形可以重叠 我不太关心设置时间 因为矩
  • 如何取消文件上传?

    我想知道如何通过表单取消文件上传multipart form data 那可能吗 将表单发布到隐藏iframe 改变iframe src当你想取消时 浏览器将重新加载iframe并取消之前的POST对其提出请求
  • 边框和网格布局

    Hi everyone I have a problem If anyone can help it would be great I am using border and gridlayout and I am trying to sp
  • 如何使用 X509SecurityKey 进行 Asp.Net Core JWT 验证?

    我如何 可以 使用 X509SecurityKey 进行 Asp Net Core JWT 验证 我当前的代码大致是 X509SecurityKey signingKey null using X509Store store new X50
  • 可以发送到 WCF 服务的数据量是否有大小限制?

    可以发送到 WCF 服务的数据量是否有大小限制 我发送了一个对象数组 当数组达到一定大小时 我收到 404 错误请求异常 这是 httpHosting 的限制吗 另一种类型的托管效果会更好吗 有最大数组大小和最大内容大小 这是用于增加大小的
  • 使用 setcs 命令时 Clearcase 配置规范的行为很奇怪

    我将配置规范存储在文本文件中 以下为内容 element CHECKEDOUT element lost found none element My MYF R2 1 0 9 5179 element My My 2 1 0 13 4875
  • 如何动态获取当前的base URL? [复制]

    这个问题在这里已经有答案了 我正在尝试在我的网络项目中创建一个链接 在链接文本中显示链接 url 例如 如果我正在处理本地主机的示例项目 我希望 example jsp 页面的链接看起来像http localhost 8081 Exampl
  • 三元运算符左结合性[重复]

    这个问题在这里已经有答案了 在 PHP 手册中 我发现以下 用户贡献的注释 在 操作员 下 请注意 在 php 中 三元运算符 具有左结合性 这与 C 和 C 中的右结合性不同 您不能编写这样的代码 正如您可能在 C C 中习惯的那样
  • 使用 AppleScript 设置文件标签

    我正在尝试使用以下代码使用 AppleScript 在文件上放置彩色标签 set theFile to HDD Path to the file ext tell application Finder set label of file t
  • 将 UWP 应用程序连接到远程 SQL Server 2008 提供程序:TCP 提供程序,错误:0

    System Data SqlClient SqlException 已成功与服务器建立连接 但在登录过程中发生错误 提供程序 TCP 提供程序 错误 0 操作成功完成 我正在尝试使用 UWP 应用程序连接到 SQL Server 2008
  • 使用变量替换 shell 脚本中的字符串

    我正在使用下面的代码来替换字符串 在 shell 脚本中 echo LINE sed e s 12345678 replace g 但它正在被取代 replace而不是该变量的值 有人能告诉我出了什么问题吗 如果你想解读 replace 您
  • 如何将这个特定的 json 字符串转换为 python 字典?

    我如何转换这个字符串 gt string name sam 像这样进入 python 字典 gt data name sam In 1 import json In 2 json loads name sam Out 2 u name u
  • JavaScript 使用reduce 从数组创建带有计数的对象

    我正在尝试解决这个小问题 我需要在哪里使用reduce创建一个包含每个项目计数的对象 我以为我明白了reduce有效 使用一个函数将多个值减少到一个 但我不知道这是如何工作的 有什么想法或建议吗 对此 我真的非常感激 var people