根据属性以及 javascript 中的计数对对象数组进行分组

2024-02-20

我有一系列对象说temp。我想根据对象的属性进行分组。例如,应该对性别进行分组,并计算其数量。

const temp = [
  {
    properties: {
      "id":1234,
      "gender": 'male',
      "status": "Active"
    }
  },
  {
    properties: {
      "id":1456,
      "gender": 'male',
      "status": "Not Active"
    }
  },
  {
    properties: {
      "id":1377,
      "gender": 'female',
      "status": "Active"
    }
  },
  {
    properties: {
      "id":8799,
      "gender": 'female',
      "status": "Active"
    }
  }
];

可以像这样传递需要分组的道具

groupFunc = (data) => {
  const metrics = data
  for (i = 0; i < temp.length; i++) {
    data.map( el => 
      temp[i].properties.el ? grouped.push([{"key": el, "value": temp[i].properties.el,"count":1}])
      :
      null
    )
    console.log(temp[i].properties)
  }
};
groupFunc(["gender","status"]);

分组并累加计数后的最终结果应该是

grouped = [
  [
    {
      "key": "gender",
      "value": "male",
      "count": 2
    },
    {
      "key": "gender",
      "value": "female",
      "count": 2
    }
  ],
  [
    {
      "key": "status",
      "value": "Active",
      "count": 3
    },
    {
      "key": "status",
      "value": "Not Active",
      "count": 1
    },
  ]

]

const temp = [{properties:{"id":1234,"gender":'male',"status":"Active"}},{properties:{"id":1456,"gender":'male',"status":"Not Active"}},{properties:{"id":1377,"gender":'female',"status":"Active"}},{properties:{"id":8799,"gender":'female',"status":"Active"}}];

const groupByKeys = (data, keys) => {
  let finalResult = keys.map(key => {
    return Object.values(data.reduce((result, obj)=>{
      let objKey = obj["properties"][key]
      result[objKey] = result[objKey] || {key: key, count: 0, value: objKey};
      result[objKey].count += 1;
      return result
    },{}))
  })
  return finalResult
}

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

根据属性以及 javascript 中的计数对对象数组进行分组 的相关文章

随机推荐

  • 在处理可选字段时,在 gremlin 中使用注入进行长遍历

    我正在构建一个长遍历以在一个查询中添加数百个顶点 我从官方网站上看到 推荐的方法是注入对象列表并在那里添加顶点 http tinkerpop apache org docs current recipes long traversals h
  • CSS 或 SVG 中的波浪

    我正在尝试用以下方法创建柔和的波浪CSS我遇到了一些麻烦 我现在正在使用边界半径来创建波浪 但它看起来更像云 我尝试使用transform translateZ 180deg 但是div然后颜色是颠倒的 Here s what I want
  • Bootstrap Jumbotron 底部的 CSS 箭头

    我正在尝试使用边框创建一个 css 形状来表示下图中的黑色形状 黑色形状将位于 Bootstrap 大屏幕内部 或上方 红色区域是背景图像 我一直在尝试下面的代码 它给了我一个箭头 但不是我需要的形状 也许是两个箭头 任何帮助表示赞赏 ju
  • 如何在meteor.js 中本地化(i18n) moment.js?

    如何告诉在meteor js 应用程序中使用的moment js 使用英语以外的其他语言 moment js 作为 mrt 包安装 在默认英语下运行良好 使用来自 moment js 文档的演示调用http momentjs com doc
  • 使用 NuGet.Core 以编程方式推送 NuGet 包

    我目前正在打包一些文件 并使用命令行工具将它们推送到我们一台服务器上的 NuGet 源 我没有使用命令行工具 而是使用 Nuget Core 设置了一个项目 并成功创建了一个包 我现在尝试通过 NuGet Core 将该包从我的计算机推送到
  • dbReadTable 将日期列从 SQL 数据库强制转换为字符

    我可以将日期写入 SQL 表DBI dbWriteTable 并看到该列实际上在数据库中被格式化为日期 但是当我使用DBI dbReadTable 在 R 中 相同的日期列被强制转换为字符列 如何将 SQL 表读入 R 并保留日期列格式 l
  • Grails 1.3.7 / Java 7 兼容性

    有人幸运地使用 Java 7 运行 Grails 1 3 7 应用程序吗 我创建了一个全新的 Grails 1 3 7 应用程序并尝试在 Java 7 下运行它 我收到以下错误 但该应用程序似乎运行正常 我们有一些 1 3 7 应用程序 我
  • 我是否总是需要考虑性能?

    我来自 DBA 世界 性能一直是我的痴迷 我正在转向开发 并且我总是不断地 无时无刻地思考性能 阅读 SO 有时似乎性能并不重要 例如 对于 hibernate 或任何其他 ORM 的传播者来说 作为一名开发人员 我什么时候必须考虑性能 什
  • 去除android.widget.Toolbar阴影

    使用API 21 Toolbar Toolbar Toolbar toolbar new Toolbar this toolbar showOverflowMenu 想彻底消除它的影子 setElevation 0 从那以后什么也没做get
  • UIRefreshControl背景颜色

    是否可以使 UIRefreshControl 的背景随着控件的增长而增长 我希望刷新控件有一个彩色背景 以匹配顶部单元格的背景颜色 更改表格视图的背景颜色是不可接受的 因为底部的空单元格也会有颜色 但我需要它们保持白色 苹果的邮件应用程序显
  • ((float) rand() / (float)((1 << 31) - 1)) 的含义

    我试图理解一个 C 程序 其中包含一个 h 文件 其中包含以下行 define random float rand float 1 lt lt 31 1 C程序还包括
  • 在 React Native 中面临“无法安装应用程序。请确保您有 Android 开发环境”的问题

    你能帮助我吗 我被困在反应原生中创建一个新项目 如下图所示 我能够运行旧项目 但我无法运行新项目 我已按照以下步骤操作 react native init projectName cd projectName react native ru
  • 离线同步和事件源

    我们的应用程序中基于 CRUD 的部分需要 离线双向 双向 同步 能够修改数据直到准备好然后 发布 审核日志 我正在寻找事件溯源 或 命令模式 来完成这些项目 我觉得用这个来解决 2 3 很舒服 但对于第一个项目同步还不清楚 如果每个命令都
  • Javascript:转发带有可变数量参数的函数调用[重复]

    这个问题在这里已经有答案了 我想我需要像红宝石的splat这样的东西 here function foo var result for var i 0 i lt arguments length i result arguments i r
  • 如何将 Azure AD 身份验证添加到现有 ASP.NET MVC 应用程序?

    我有一个使用 Visual Studio 2013 的现有 ASP NET MVC 应用程序 我遵循了此演练 但它在选择时只关注新的新建项目更改身份验证在项目模板中 使用 Windows Azure Active Directory 开发
  • 在ReactJS中显示来自flask send_file函数的图像

    我使用 Flask send file 将图像发送到客户端 如下所示 app route get cut image methods GET def get cut img response make response send file
  • 反向柯里化?

    我想以某种方式组合函数 请考虑伪代码 而不是 F 中的这 2 个函数 F1 x y F2 F1 10 note I did not specify arguments for F1 reverse curry for lack of a b
  • 使用指针功能 - 1 个设备上的 2 个独立应用程序

    我前段时间问过这个问题如何使用主应用程序和引导加载程序中的一项功能 嵌入 https stackoverflow com questions 45459776 how can i use one function from main app
  • 来自图像选择器 swift 3 的 GeoTag 图像

    我想从图像选择器中选择的图像获取地理标记位置 我正在使用这个代码 if picker sourceType UIImagePickerControllerSourceType PhotoLibrary if let currentLat p
  • 根据属性以及 javascript 中的计数对对象数组进行分组

    我有一系列对象说temp 我想根据对象的属性进行分组 例如 应该对性别进行分组 并计算其数量 const temp properties id 1234 gender male status Active properties id 145