当前位置: 首页 > 知识库问答 >
问题:

如何在foreach javascript中对数据进行分组和求和[duplicate]

束涵涤
2023-03-14

我有一个数组对象形式的数据。我将根据日期和代码对数据进行分组和汇总

const data = [
{code: 8, date:"2022-03-24", total:4},
{code: 8, date:"2022-03-24", total:8},
{code: 8, date:"2022-03-25", total:2},
{code: 9, date:"2022-03-24", total:4},
{code: 9, date:"2022-03-25", total:2},
{code: 9, date:"2022-03-25", total:1},]

预期结果

const result = [
{code: 8, date:"2022-03-24", total:12},
{code: 8, date:"2022-03-25", total:2},
{code: 9, date:"2022-03-24", total:4},
{code: 9, date:"2022-03-25", total:3},]

共有1个答案

戚宏扬
2023-03-14

通常对于这些分组问题,您可以使用减少。我将codedate的组合进行分组。类似于"8|2022-03-24"

这就是中间对象的样子

{
  8|2022-03-24: {
    code: 8,
    date: "2022-03-24",
    total: 12
  },
  8|2022-03-25: {
    code: 8,
    date: "2022-03-25",
    total: 2
  },
  9|2022-03-24: {
    code: 9,
    date: "2022-03-24",
    total: 4
  },
  9|2022-03-25: {
    code: 9,
    date: "2022-03-25",
    total: 3
  }
}

从这个对象中,我使用对象获取值。值

js lang-js prettyprint-override">const data = [
{code: 8, date:"2022-03-24", total:4},
{code: 8, date:"2022-03-24", total:8},
{code: 8, date:"2022-03-25", total:2},
{code: 9, date:"2022-03-24", total:4},
{code: 9, date:"2022-03-25", total:2},
{code: 9, date:"2022-03-25", total:1},]

let grouped = Object.values(data.reduce((acc,{code,date,total})=>{
    acc[code+'|'+date] = acc[code+'|'+date] || {code,date,total:0}
  acc[code+'|'+date].total+=total
  return acc;
},{}))

console.log(grouped)
 类似资料:
  • 问题内容: 该问题旨在作为有关PHP中数组排序问题的参考。容易想到您的特定案例是独特的,值得提出新的问题,但是实际上大多数都是此页面上一种解决方案的细微变化。 如果您的问题作为该问题的重复而被关闭,请仅在您可以解释为什么该问题与以下所有内容明显不同时才要求重新提出您的问题。 如何在PHP中对数组排序? 如何在PHP中对 复杂 数组进行排序? 如何在PHP中对对象数组进行排序? 有关使用PHP现有功

  • 问题内容: 我来自拥有LINQ的.NET世界,因此我可以像在SQL中通常看到的那样进行内存中查询。 我要对该结构进行切片,希望将其按8个字段分组,然后对另一个整数字段求和。就像是: 我以为: 创建一个Equal函数,以比较结构(那八个字 段)。遍历我正在分析的集合。对于每个项目, 检查它是否已经在哈希表中。如果存在=>我对字段求和。如果不是=>我将新项目添加到哈希表。 有没有更好的方法或任何美观,

  • 本文向大家介绍如何在JavaScript中对JSON数据进行分组?,包括了如何在JavaScript中对JSON数据进行分组?的使用技巧和注意事项,需要的朋友参考一下 要对JSON数据进行分组,您需要提取所有键并使用。以下是代码- 示例 要运行上述程序,您需要使用以下命令- 输出结果 在这里,我的文件名为demo122.js。这将产生以下输出-

  • 我想使用SparkSQL在数组列上(或执行其他聚合函数)。 我有一张桌子 我想对emp\u details列的值求和。 预期查询: 预期结果 此外,我还应该能够对范围元素求和,例如: 后果 当按预期对数组类型执行sum时,它显示sum预期参数为数值类型而不是数组类型。 我认为我们需要为此创建UDF。但是怎么做呢? 我将面临UDF的任何性能冲击吗?除了UDF之外,还有其他解决方案吗?

  • 我有一个pandas数据帧像: 我想按第一列进行分组,并将第二列作为行中的列表:

  • 问题内容: 假设我有一个带有数字列的表(我们称其为“分数”)。 我想生成一个计数表,该表显示每个范围内得分出现的次数。 例如: 在此示例中,分数在0到9之间的行有11行,分数在10到19之间的行有14行,分数在20-29范围内的行有3行。 有一个简单的方法来设置它吗?您有什么推荐的吗? 问题答案: 在SQL Server 2000上,投票率最高的答案均不正确。也许它们使用的是其他版本。 这是它们在