首页 > web前端 > js教程 > 如何在 JavaScript 中使用共享键求和对象属性值?

如何在 JavaScript 中使用共享键求和对象属性值?

Mary-Kate Olsen
发布: 2024-12-14 17:18:18
原创
255 人浏览过

How to Sum Object Property Values with Shared Keys in JavaScript?

在 JavaScript 中使用共享键求和对象属性值

考虑以下 JavaScript 对象数组:

const objArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 42},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 54}, // Duplicate key
];
登录后复制

目标是通过对相应的 val 值求和来合并重复的键,从而产生一个类似的数组this:

const reducedObjArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 96},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
];
登录后复制

为了实现这一点,可以利用采用reduce和map方法的强大解决方案:

let counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

let reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value};
});
登录后复制

这种方法首先使用reduce创建一个Map,其中每个键代表原始数组中的唯一键,对应的值是具有相同键的所有 val 值的总和。

最后,在计数上调用 map 方法map 将其转换回具有所需合并值的对象数组。此代码的输出是reduceObjArr,其中包含所需的合并和求和值。

以上是如何在 JavaScript 中使用共享键求和对象属性值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板