在对象数组中添加匹配键的值

2023-11-25

我有一个数组,其中包含许多具有匹配键的对象:

[{a: 2, b: 5, c: 6}, {a:3, b: 4, d:1},{a: 1, d: 2}]

我想循环遍历数组,如果键匹配,我想将每个键的结果相加,并返回一个包含每个键之和的对象。

i.e.

{a: 6, b: 9, c: 6, d: 3}

我目前拥有的代码是

function combine() {
   var answer = [];
  for(var i in arguments){
    answer.push(arguments[i])
  }

 answer.reduce(function(o) {
    for (var p in o)
        answer[p] = (p in answer ? answer[p] : 0) + o[p];
        return answer;
    }, {});
}

我能找到答案here如果我要使用下划线库,但是我希望不使用库来完成它。我想我很难理解reduce方法有效 -https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

任何有关如何解决此问题的帮助将不胜感激。另外,我觉得这个答案应该在 SO 上的某个地方,而不必使用库。

提前致谢。


使用 Array.reduce() 和 Array.map()

var tab = [{a: 2, b: 5, c: 6}, {a:3, b: 4, d:1},{a: 1, d: 2}];

function sum(tab) {
  return tab.reduce((a, b) => {
    Object.keys(b).map(c => a[c] = (a[c] || 0) + b[c]);
    return a;
  });
}

console.log(sum(tab));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在对象数组中添加匹配键的值 的相关文章

  • Mozilla WebExtension API 存储 - 使用和不使用断点进行调试会导致不同的输出

    大家好 我正在尝试为 Mozilla Firefox 浏览器实现一个附加组件 以下脚本显示了我已经成功集成的一个后台脚本 它使用 Mozilla WebExtension API 存储 它被执行了 但浏览器控制台上的日志让我感到惊讶 我交替
  • 绑定 popstate 事件不起作用

    我尝试在浏览器的控制台中输入以下代码 window onpopstate function alert 1 然后单击后退按钮 没有显示任何警报 难道我做错了什么 或者是否不允许将 popstate 事件绑定到控制台的页面 使用 Chrome
  • Java 读取大文本文件时出现 OutOfMemoryError

    我是 Java 新手 正在读取非常大的文件 需要一些帮助来理解问题并解决它 我们有一些遗留代码 必须对其进行优化才能正常运行 文件大小仅在 10mb 到 10gb 之间变化 只有当文件开始大小超过 800mb 时才会出现启动问题 Input
  • 使用javascript滚动滚动条或鼠标滚轮后触发事件

    我想知道是否可以触发事件after使用滚动条或鼠标滚轮 或在触摸设备上滑动 时滚动页面 基本上 我想检测用户何时停止滚动 以便我可以进行 AJAX 加载 而不是在滚动时加载 看起来jQuery s scroll 每次用户滚动时都会触发 并且
  • 网络上的等角柱状图

    我计划为游戏的标记 图钉 构建在线地图 但我无法设置标记的正确纬度 原始地图是一个2048 2048px 的正方形 然后我得到了标记 数千个 地图坐标使用 0 到 100 之间的 x y 表示法设置 0 0 是top left角和100 1
  • 鼠标移动时画布拖动

    我正在尝试构建一个可以使用鼠标移动拖动的画布 我做了一些我无法理解的错误 因为一开始似乎有效 然后出现了一个增量错误 使画布移动得太快 考虑以下代码 window onload function var canvas document ge
  • 如何在 Windows 网络中的 Intranet Web 应用程序中获取用户的用户名

    我内部有一个简单的 HTML 页面 它只显示一个表单并要求用户填写 我想自动捕获Windows域用户名和机器名 并将其与表单中收集的数据一起提交 我可以在客户端这样做吗 HTML JavaScript 或者我被迫在服务器端执行此操作 我还不
  • 为什么我可以使用 Date 对象进行数学运算? [复制]

    这个问题在这里已经有答案了 当我像这样减去两个日期对象时 const startTime new Date await someAsyncStuff const endTime new Date const elapsedTime endT
  • 如何将文件中的行读入数组?

    我正在尝试将文件作为行数组读入 然后使用 zsh 对其进行迭代 我得到的代码在大多数情况下都有效 除非输入文件包含某些字符 例如括号 这是它的一个片段 bin zsh LIST cat path to some file txt SIZE
  • 在给定索引上将字符串分成两部分并返回两部分

    我有一个字符串 需要在给定索引上拆分 然后返回两个部分 并用逗号分隔 例如 string 8211 8 211 98700 98 700 因此 我需要能够在任何给定索引上拆分字符串 然后返回字符串的两半 内置方法似乎执行分割 但只返回分割的
  • 如何将React JS状态保存到本地存储中

    我不知道如何将 React js 状态存储到本地存储中 import React Component from react import App css import auth createUserProfileDocument from
  • 如何连接以逗号分隔的命名范围的返回值

    我花了几个小时试图找出如何连接命名范围中的返回值 但结果是 运行时错误 32 类型不匹配 作为一个新手 我仍在与数组作斗争 所以也许我忽略了一些细节 谢谢你帮助我 示例 B1 苯 B2 柴油 B3 混合动力 gt E1 汽油 E2 柴油 E
  • 将默认搜索文本添加到搜索框 html

    我正在努力将 搜索 文本添加到搜索框 我正在努力实现 onfocus 消失文本 And onblur 重新出现文本 到目前为止 我已经实现了这一点 但我必须将其硬编码为 html eg
  • jQuery 相当于 underscore.js 的 groupBy

    jQuery 中是否有一个内置函数可以执行相当于http underscorejs org groupBy http underscorejs org groupBy 有什么解决方法吗 Thanks 不 jQuery 不是为数据处理而设计的
  • 如何捕获文本区域上的 Enter 按键而不是 Shift+Enter? [复制]

    这个问题在这里已经有答案了 I m doing it for texarea A function should be called when the user press Enter but nothing should be done
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • 有序 JSON 对象

    我有一个 servlet 它与数据库通信 然后返回有序 按时间排序 对象的列表 在servlet部分 我有 access DB returns a list of User objects ordered ArrayList users M
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙
  • 将数组值导出到 csv 文件 java

    我只需要帮助将数组元素导出到 csv 文件 我不知道我的代码有什么问题 任何帮助将不胜感激 谢谢 for int index 0 index lt cols length index FileWriter fw new FileWriter
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i

随机推荐

  • 无法返回字符串切片向量:借用的值寿命不够长

    我是 Rust 新手 在借用检查器方面遇到了一些问题 我不明白为什么这段代码无法编译 抱歉 如果这与之前回答的问题很接近 但我似乎无法在我看过的其他问题中找到解决方案 我理解相似之处但在这种情况下 它只是返回一个字符串 不足以让我对我试图返
  • 当数据正确显示时,为什么我会在此 Spring MVC Web 应用程序中收到 Hibernate LazyInitializationException?

    我正在尝试使用 Spring MVC 创建一个 Web 应用程序 并使用 Hibernate 作为其 ORM 层 然而 由于我对这两个框架都缺乏经验 所以我很挣扎 以下代码将正确显示我正在查找的所有记录 但仍将堆栈跟踪放入我的日志中 我无法
  • 小部件的多个实例仅更新最后一个小部件

    我有一个 WidgetProvider 和一个配置活动 当小部件启动时 它从配置活动开始 我通过对 widgetprovider 进行自定义调用来设置它 您会注意到来自 sdk 教程示例 Push widget update to surf
  • 将“排序”与 char 数组结合使用 (C++)

    是否可以使用std sort定义在里面
  • 可以将position_jitter与position_dodge结合起来吗?

    我非常喜欢箱线图 其中抖动点覆盖在箱线图上以表示实际数据 如下所示 set seed 7 l1 lt gl 3 1 length 102 labels letters 1 3 l2 lt gl 2 51 length 102 labels
  • Conda 是否取代了 virtualenv 的需求?

    我最近发现Conda在我安装 SciPy 时遇到问题后 特别是在我正在开发的 Heroku 应用程序上 使用 Conda 您可以创建与以下环境非常相似的环境虚拟环境做 我的问题是 如果我使用 Conda 它会取代 virtualenv 的需
  • 根据弹出窗口相对于窗口边缘的 X 位置更改 Bootstrap 弹出窗口的位置?

    我在互联网上进行了广泛的搜索 虽然我发现这篇 stackoverflow 帖子很有洞察力是否可以根据屏幕宽度更改 Bootstrap 弹出窗口的位置 它仍然没有回答我的问题 可能是由于我无法理解位置 偏移 这就是我正在尝试做的事情 我希望
  • 从哪里开始学习 SharePoint 2010?

    我最近开始从事一项新工作 我将使用 Sharepoint 2010 来设置 或实际升级 内部网 不幸的是 我没有使用 SP2010 的经验 上次接触 SP2007 或虚拟服务器 是在四年前 我很快就要参加一门课程 但在那之前我必须让自己变得
  • 当前程序状态寄存器异常模式

    我正在使用具有以下四个汇编指令的代码 CPSR cxsf SPSR cxsf CPSR c SPSR c 我一直很难弄清楚这些异常模式之间的区别 有人可以建议吗 c x s and f指的是状态寄存器的不同部分 c 控制x 延伸s 状态f
  • 如何从 iOS 模拟器获取控制台日志?

    如果我不在 Xcode 中测试应用程序 我想看看 iOS 模拟器中会发生什么 例如 如果我在 Safari 模拟器中打开一个链接 看看控制台中会发生什么 或者 如果我安装网络应用程序 请查看我在控制台中按下的链接 我怎样才能做到这一点 我想
  • NoClassDefFoundError - 拒绝对先前失败的类进行重新初始化

    请有人解释一下这个错误的含义以及如何避免它 一段时间后 我的应用程序由于此错误而强制关闭 09 28 12 53 45 746 I dalvikvm 29489 Rejecting re init on previously failed
  • HttpURLConnection - “https://”与“http://”

    例如 我试图获取用户输入的网址的图标 url google com 我使用 HttpUrlConnection 从 favicon ico主机 URL 的扩展名 String faviconString Uri parse url getH
  • ValueError:必须仅传递带有布尔值的 DataFrame

    Question 在此数据文件中 美国使用 REGION 列分为四个区域 创建一个查询 查找属于区域 1 或 2 名称以 Washington 开头且 POPESTIMATE2015 大于 POPESTIMATE 2014 的县 此函数应返
  • 无法关闭 Windows 10 上的所有 Google Chrome 进程并且无法运行浏览器

    我的症状如下 1 无法运行谷歌浏览器 任务管理器告诉我 RAM 中有一个 chrome exe 任务管理器无法杀死它 2 由于该进程仍在 RAM 中 因此我无法重新安装 Google Chrome 任何帮助深表感谢 您可以使用命令提示符来终
  • 从 Promise 返回一个值

    我想使用这样的 Promise 调用 Google Maps Geocoding API function makeGeoCodingRequest address bounds Input parameters address a str
  • ICollection.包含自定义类型

    如果我有一个 参考 这重要吗 类型MyType这不会覆盖Equals方法 在确定是否存在时将使用什么启发式方法ICollection包含该类型的给定实例 使用我自己的启发法的最佳方法是什么 例如检查Id适当的价值 由于您的类型不会覆盖 Eq
  • 在 SQL Server 中定义一对一关系

    我需要定义一对一的关系 但似乎无法在 SQL Server 中找到正确的方法 您问为什么是一对一的关系 我使用 WCF 作为 DAL Linq 并且有一个包含 BLOB 列的表 BLOB 几乎不会改变 每次查询时传输它都会浪费带宽 我看了一
  • @ElementCollection 与 Map 其中 Entity 是 Embeddable 的字段

    在搜索了 JPA 文档和各种帖子后 我对 JPA2 0 是否可以实现以下操作感到困惑 我刚刚开始使用 JPA 所以如果我做了一些愚蠢的事情 请原谅 我的域模型有一个 投资组合 其中包含零个或多个 未平仓头寸 仓位由 工具 JPA 实体 和价
  • SQL Server 中索引的排序规则

    我感兴趣的是 在创建与该列的排序规则不同的索引时是否可以为该列指定排序规则 当建立索引时 字符串数据是根据列的排序规则还是数据库的排序规则排序 您可以使用所需的排序规则创建计算字段 并在此字段上创建索引
  • 在对象数组中添加匹配键的值

    我有一个数组 其中包含许多具有匹配键的对象 a 2 b 5 c 6 a 3 b 4 d 1 a 1 d 2 我想循环遍历数组 如果键匹配 我想将每个键的结果相加 并返回一个包含每个键之和的对象 i e a 6 b 9 c 6 d 3 我目前