按键将对象分组为二维数组

2023-12-01

我有一系列对象。这些对象有一个属性称为time。如果这些对象的时间相同,我想将它们分组到同一个数组中。

{ "00:00" :
   [{"id":1, time: "00:05",
    {"id":1, time: "00:15",
    {"id":1, time: "00:20",
    {"id":2, time: "00:05",
    {"id":3, time: "00:05",
    {"id":4, time: "00:35 }]
}

我想将上述数据格式化为:

{ "00:00" :[
    [{"id":1, time: "00:05"}, {"id":2, time: "00:05"}, {"id":3, time: "00:05"}],
    [{"id":1, time: "00:15" }],
    [{"id":1, time: "00:20" }],      
    [{"id":4, time: "00:35" }]]
}

关于如何实现这一目标有什么建议吗?


您可以使用reduce总结你的对象和用途Object.values将对象转换为数组

let obj={"00:00" :[{"id":1,time:"00:05"},{"id":1,time:"00:15"},{"id":1,time:"00:20"},{"id":2,time:"00:05"},{"id":3,time:"00:05"},{"id":4,time:"00:35"}],"02:00" :[{"id":1,time:"00:05"},{"id":1,time:"00:15"},{"id":1,time:"00:20"},{"id":2,time:"00:05"},{"id":3,time:"00:05"},{"id":4,time:"00:35"}]}

var result = Object.entries(obj).reduce((c, v) => {
  c[v[0]] = Object.values(v[1].reduce((a, o) => {
    a[o.time] = a[o.time] || [];
    a[o.time].push(o);
    return a;
  }, {}));
  return c;
}, {});


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

按键将对象分组为二维数组 的相关文章

随机推荐

  • Rust OpenTelemetry OTLP 带 Honeycomb

    我正在尝试使用opentelemetry and open telemetry otlp通过 OTLP 向 Honeycomb 提供可观测性数据 我使用这样的东西作为概念证明 如果你想运行它 可以将其提取到此存储库中 https githu
  • 使列表不可变[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的不可变列表 是否可以使列表不可变 您可以使用ReadOnlyCollection
  • 表单提交无需刷新页面

    有人可以告诉我使用教程吗jquery显示表单提交成功 无需刷新页面 当邮件发送时 gmail 上会发生类似的情况 黄色叠加层显示您的邮件已发送 然后淡出 我希望根据表单提交的结果显示消息 好的 类似这样的 但我没有尝试 所以像教程一样使用它
  • 为什么@EnableWs从spring bean中删除aop代理

    我正在尝试在我的 Spring Boot Web 服务项目中添加自定义拦截器 我跟随this示例并创建了此配置 package org example import java util List import org aspect Pers
  • 如何更改列的标识增量

    以下语句可以重置种子 DBCC CHECKIDENT 表名 RESEED 1 但这次我必须改变它的增量 或者您可以使用 Sql Server Management Studio 使用这种方法很可能会重新创建该表
  • Java中如何计算HashMap内存使用量?

    我在面试中被要求计算内存使用情况HashMap如果其中有 200 万个项目 预计会消耗多少内存 例如 Map
  • Java SSLSocket:如何发送完整的服务器证书链?

    当我在 Java 7 中创建 SSLServerSocket 时 服务器正确使用我的服务器证书和密钥 该证书是由 ca 的子 ca 颁发的 因此 从根证书到服务器证书的完整链有四个证书 完整的链存在于密钥库 信任库中 但是 当客户端连接时
  • 如何更改SysDateTimePick32或CDateTimeCtrl的背景颜色?

    我似乎无法更改背景颜色SysDateTimePick32控制 在本例中为白色 在我的 Win32 MFC 应用程序中 我首先尝试覆盖OnCtlColor父窗口中的通知消息 甚至没有被调用 然后我尝试了子类化方法此处描述 这被称为正常 但控件
  • 变量数量与参数数量不匹配 - 是的,它们匹配

    因此 根据建议 我试图包含准备好的陈述 但 PHP 不接受我的代码 stmt link gt prepare SELECT COUNT FROM table WHERE company CONVERT utf8 USING latin1 C
  • 如何处理动画+自动容器大小

    我有这个动画 我想自动调整它的大小以适应内容 标题总是随着白天和用户的变化而变化 我想避免标题容器使用 100 的可用空间来进行进一步的动画 对于所有自动属性 标题只会在 2 5 秒后弹出 那么我该如何处理这个问题呢 typewriter
  • 将上传的文件保存在特定位置

    我有以下代码来处理服务器上的文件上传 但是如何将文件保存到服务器上的特定位置 import gwtupload server UploadAction import gwtupload server exceptions UploadAct
  • 启动HBASE,java.lang.ClassNotFoundException:org.apache.htrace.SamplerBuilder

    我尝试使用 start hbase sh 启动 HBASE 但是出现错误 java lang ClassNotFoundException org apache htrace SamplerBuilder 我尝试过添加各种 jar到各个文件
  • 哪里可以获得简单的 Boost 线程管理示例?

    所以我有一个简单的cpp文件 只有一个具有 1 个主函数和 3 个 int a la 公共变量 喜欢 int a int b int c void main startThredA startThredB while 1 c a b pri
  • PHP 5.4.17 替代“... 运算符”

    我想知道是否有人知道 PHP 5 6 x 及更高版本的替代方案 运算符 或 splat 运算符 我相信它被称为 我目前在 PHP 7 版本中所做的是 this gt callAction explode this gt routes aut
  • 工厂创建相同接口的不同对象

    我有1个接口 public interface ISummary int EventId get set 还有许多实现该接口的具体类 public class EmployeeSummary ISummary public int Even
  • 为什么 TRUE == "TRUE" 在 R 中是 TRUE?

    Why TRUE TRUE is TRUE in R 有没有等价的 in R Update 这些都在回归FALSE TRUE True TRUE true TRUE T 唯一的TRUE值为TRUE TRUE 如果检查identical 一切
  • 对于程序的不同运行,全局变量的地址是否相同?

    考虑以下代码片段 int i 10 int main cout lt lt i 一旦为程序生成了 exe 程序不同运行的输出是否相同 假设操作系统支持虚拟内存 编辑 这个问题特定于存储在数据段中的全局变量 由于这是第一个全局变量 因此地址应
  • JS下载多个文件

    我的目标是有一个脚本来下载给定数组内的所有文件 var links http file examples com wp content uploads 2017 10 file example JPG 100kB jpg http file
  • 从 Android Activity 类调用 Javascript 函数

    我正在开发需要使用参数调用 Javascript 函数的应用程序 为了演示 我在这里写了我的 Activity 代码 我想从中调用 js 函数 主要活动 WebView wView FloatingActionButton fab Cont
  • 按键将对象分组为二维数组

    我有一系列对象 这些对象有一个属性称为time 如果这些对象的时间相同 我想将它们分组到同一个数组中 00 00 id 1 time 00 05 id 1 time 00 15 id 1 time 00 20 id 2 time 00 05