使用 LoDash 合并包含相同键/值的对象

2024-01-05

在对初始数组中的 LoDash 进行一些操作后,我最终得到以下结果:

[
  {number:3, product:'apple'},
  {number:2, product:'apple'},
  {number:4, product:'pear'}
]

我怎样才能操纵它最终得到:

[
  {number:5, product:'apple'},
  {number:4, product:'pear'}
]

这是原始代码,以防万一:

$scope.data = [
  {
    date:'date',
    products: [
      {
        number: 3,
        product: 'Apple'
      },
      {
        number: 4,
        product: 'Pear'
      }
    ]
  },
  {
    date:'date',
    products: [
      {
        number: 2,
        product: 'Apple'
      }
    ]
  }
]


const grouped = _.groupBy($scope.data, function(el){
  return moment(el.date).format('dddd, D [de] MMMM');
});

const result = _.map(grouped, (value, date) => ({
    date: date,
    products: _.flatMap(value, el => el.products)
}));

您必须添加按产品单独分组,与按日期分组非常相似

// Function for grouping unique products with sum of units
function sumProductsUnits(products) {
    var productGroups = _.groupBy(products, productObj => productObj.product);

    return _.map(productGroups, (productGroup, productName) => ({
        product: productName,
        units: productGroup.reduce((sum, val) => sum + val.number, 0)
    }))
}

用法如下:

const result = _.map(grouped, (value, date) => ({
    date: date,
    products: sumProductsUnits(
        _.flatMap(value, el => el.products)
    )
}));

Result:

[
   {
      "date":"date",
      "products":[
         {
            "product":"Apple",
            "units":5
         },
         {
            "product":"Pear",
            "units":4
         }
      ]
   }
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 LoDash 合并包含相同键/值的对象 的相关文章

  • 需要参考$log.log调用行号

    当我使用 Angular log 服务时 控制台中的所有行都会显示对 angular js 5687 的引用 而不是我调用 log log 函数的行 如何获得对我调用 log 的行的引用 另外 我有自己的围绕 log 的服务 如何引用对我的
  • 将 1d 数组索引转换为 3d 数组索引?

    我有一个 int 我想将其转换为 3d 数组索引的 3 个 int 这是我正在处理的示例 byte array new byte XSize YSize ZSize int i 0 other code array cur other co
  • 在父指令和子指令之间传递参数

    我有导航菜单的父指令和菜单链接的子指令 像这样的事情 menu menu
  • Chrome 打包应用程序 - 在后台/事件页面中使用 AngularJS

    当我们创建 Chrome 应用程序时 我们将脚本放在背景属性中清单 json file 这将用作应用程序的背景 事件页面 我想要的是 我想使用 AngularJS后台脚本但我不知道怎么办 还有 这可能吗 我刚看到一些答案 https sta
  • 删除数组中的重复元素[重复]

    这个问题在这里已经有答案了 可能的重复 在 JavaScript 数组中查找重复值的最简单方法 https stackoverflow com questions 840781 easiest way to find duplicate v
  • 如何使用 KendoUI 网格设置 CURD 以与 Kendo-Angular 和 Angular OData 工厂一起使用?

    在之前的项目中 我没有使用 Angular 我设置了一个Kendo DataSource使用 OData 端点 如下所示 var userDS new kendo data DataSource type odata transport r
  • 从子 ng-repeat 访问父 ng-repeat 的索引

    我想使用父列表 foos 的索引作为子列表 foos bars 中函数调用的参数 我发现有人建议使用 parent index 的帖子 但是 index不是以下的财产 parent 如何访问父级的索引ng repeat div div di
  • 如何将函数处理程序从控制器传递到 AngularJs 中的指令隔离范围?

    我在控制器中有以下功能 angular module app controller BodyController function this click function message alert message 我想将此函数传递到指令的
  • 如何访问 Angularjs 模板中的常量

    如何将公共js文件中定义的常量访问到不同模块的模板中 如果我在 MainModule js 中定义了一个这样的常量 该常量包含在主 html 文件的开头 gt var myApp angular module AC gt myApp con
  • 将数组复制到动态分配的内存

    我的代码可以正常工作 但我觉得好像有一种更快的方法可以做到这一点 特别是在我的函数副本中 这是我的代码 这能再快一点吗 顺便说一句 这是 C 语言 另外 当我从函数返回 cpy 时 它是否会删除动态内存 因为它超出了范围 我不想发生内存泄漏
  • AngularJS limitTo 按最后 2 条记录

    可以结合AngularJS吗filter https docs angularjs org api ng filter filter order https docs angularjs org api ng filter orderBy
  • 在 Chrome 扩展中使用页面的 Angular JS

    我有一个 HTML 页面 其中有一些使用 Angular 配置的 DOM 现在我正在构建一个 chrome 扩展来修改文本框中的值 element value newValue不起作用 因为文本框是用 Angular 设计的 在阅读了一些资
  • 验证项目是否在开始日期和结束日期内

    我有一个java程序 它将检查每个项目的开始日期和结束日期 每个项目必须有自己特定的开始日期和结束日期范围 如果新的开始日期和结束日期的范围落在旧的开始日期和结束日期内 系统将提示错误消息 例如 Company ABC Item Numbe
  • Protractor addMockModule 附加参数不起作用?

    这看起来非常非常简单 但我不明白为什么这个简单的代码不起作用 我正在添加一个模拟模块来在 Angular E2E 测试中模拟我的 API 后端 我正在使用量角器 1 6 0 我需要将附加参数传递给模拟模块 根据 Protractor 文档
  • 查找整数数组中的最大/最小出现次数

    我刚刚编写完一个算法 该算法可以在输入整数数组中查找出现次数最多 最少的值 我的想法是对数组进行排序 所有出现的地方现在都按顺序排列 并使用
  • 不区分大小写的 array_unique

    我正在尝试编写几行代码来创建一个不区分大小写的数组唯一类型函数 这是我到目前为止所拥有的 foreach topics as value lvalue strtolower value uvalue strtolower value if
  • 将数组分配给数组

    所以我正在尝试一些数组 但我不明白为什么这不起作用 int numbers 5 1 2 3 int values 5 0 0 0 0 0 values numbers 出现以下错误 Error 1 error C2106 left oper
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • AngularJS:服务、提供商、工厂

    之间有什么区别Service Provider and Factory在 AngularJS 中 从我得到的 AngularJS 邮件列表一个惊人的线程 https groups google com forum msg angular 5
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这

随机推荐

  • VB.Net中的主要函数在哪里

    我已经接管了 VB Net WinForms 应用程序的支持 我其实是一名c 开发人员 比较熟悉c 项目中Visual Studio项目的设置 现在我试图确定为什么我的应用程序在特定的 XP 安装上崩溃 我在这里阅读了建议 http soc
  • Layer 与 Quickblox baas 比较

    Layer 与 Quickblox 哪个更好 更容易实现 性能特点 用于消息 VoIP 和视频聊天 我是否需要将 parse com 添加到这些消息传递解决方案中以进行内容存储 一些区别点是 Quickblox 支持视频和音频通话 而 La
  • Info.plist 格式不正确

    我正在顺利地完成我的 iOS Xcode 项目 然后突然当我尝试运行它时 我开始收到以下错误 error couldn t parse contents of Users pavitarsidhu Desktop AmigoDash Sid
  • 如何在tensorflow中实现t-SNE?

    我正在尝试在张量流中实现 t SNE 可视化以执行图像分类任务 我主要在网上找到的都已经在Pytorch中实现了 看here https learnopencv com t sne for feature visualization 这是我
  • 如何在perl cgi中制作二维码

    我正在尝试创建一个网站 其中包含供人们填写的表单 当用户按下 提交 按钮时 每个表单字段中的文本将连接成一个文本字符串 用于制作二维码 我该如何做到这一点以及哪种语言最适合大多数浏览器兼容 此外 我希望文本字段有一个与之关联的新行 n 以使
  • 使用托管代码中的非托管代码

    我的项目是用 MFC 开发的 它是未管理的代码 现在我需要通过重用大多数 MFC 类 在 C 中创建类似的应用程序 是否可以直接从 MFC dll 导出类 结构 枚举 以便我可以使用 dllimport 将其导入到我的 C 中并使用它 是的
  • Flutter - http.get 在 macos 构建目标上失败:连接失败

    我开始将我的 Flutter 应用程序移植到macOS 桌面 用户界面开始很好 但是 一旦应用程序进行网络调用 它就会立即失败 并显示连接失败 操作系统错误 不允许操作 运行单行 final response await http get
  • Kubernetes nslookup kubernetes.default 失败

    我的环境 OS CentOS 8 2 Kubernetes Vesion Client Version v1 18 8 Server Version v1 18 8 我已经成功配置了 Kubernetes 集群 一个主节点和一个工作节点 但
  • 按 xts 中的 period.apply() 分组

    你好 我有一个 xts 对象 有 4 个变量 2 个 id 变量和 2 个度量 gt head mi xts squareId country smsIN smsOUT 2013 12 01 00 00 00 9999 39 0 49537
  • 导入错误:没有名为脆形式的模块

    我正在开发一些 django 应用程序 但仍然很菜鸟 想使用脆皮形式 但 Eclipse 和 django 无法识别它 尝试运行服务器或 shell python manage py runserver 有时候是这样的 Traceback
  • 使用 MediaStore 存储图像会使特定三星设备上的应用程序崩溃

    我已经在这个问题上苦苦挣扎了一段时间 不幸的是其他答案没有给我任何线索 我的应用程序允许用户拍照并将其存储在本地 对于大多数设备来说一切正常 但是我遇到了崩溃运行 Android 9 API 28 的特定三星设备 设备示例有 三星 SM G
  • 如何确定 Apache Spark Dataframe 中的分区大小

    我一直在使用 SE 上发布的问题的出色答案来确定分区数量以及数据帧中分区的分布需要了解 Spark Dataframe 中的分区详细信息 https stackoverflow com questions 39217964 need to
  • 如何提高申请的主观速度?

    今天 我的同事注意到 当在进度指示器中添加小数位时 会导致程序运行得比没有小数位更快的印象 即不是 1 2 3 而是显示 1 1 2 1 4 1 6 我检查了它 令我惊讶的是我得到了相同的印象 尽管我知道它是伪造的 这让我想知道 还有哪些其
  • 如何使用 javascript 或 jquery 隐藏悬停时的图像路径

    Any one who know the answer please give me the suggestion to do this I am using mozilla firefox browser When i hover the
  • Sails.js - PATH 变量 - sails 命令无法识别

    我在 Windows Server 2008 上 npm 安装 Sails js 后 无法识别 sails 命令 有人可以提示我在 PATH 变量中使用哪些值吗 据我了解 Node exe 运行 sails js 文件 但是 如果我尝试在
  • -DNDEBUG 通常来自哪里?

    我们的构建系统发生了某种变化 优化的构建不再得到 DNDEBUG https gcc gnu org onlinedocs gcc Preprocessor Options html index D 1添加到编译行 我搜索了我们的 make
  • 您正在运行 vue-i18n 的 esm-bundler 版本。建议将您的捆绑程序配置为显式替换功能标志全局变量

    我创建了一个 ionic 应用程序并添加了 vue i18n npx ionic start myapp tabs type vue npm install vue i18n next 我完成了 VueI18n 设置的第一步 并将其添加到
  • 使用子查询的 Oracle 多行更新

    我正在尝试 洗牌 名称表中的last names 值 我想使用子选择查询来随机化名称的顺序并相应地更新它们 我想这样做是出于混淆原因 但希望它仍然看起来像一个真实的数据集 下面的语句返回 ORA 01427 单行子查询返回多于一行 我怎样才
  • 如何处理比较器中的空比较方法参数?

    我已经创建了一个实现Comparator
  • 使用 LoDash 合并包含相同键/值的对象

    在对初始数组中的 LoDash 进行一些操作后 我最终得到以下结果 number 3 product apple number 2 product apple number 4 product pear 我怎样才能操纵它最终得到 numbe