如何按键对对象数组进行分组?

2023-11-29

如何通过对象键对对象数组进行分组,以根据分组创建新的对象数组? 例如,我有一系列汽车对象:

const array = [
  {red: [ {height: 50} ]},
  {green: [ {height: 20} ]},
  {blue: [ {height: 30} ]},
  {blue: [ {height: 40} ]},
  {red: [ {height: 10} ]},
  {green: [ {height: 60} ]}
]

我想创建一个新的对象数组。(关键是颜色)

const result = [
  {red: [{height: 50}, {height: 10}]},
  {green: [{height: 20}, {height: 60}]},
  {blue: [{height: 30}, {height: 40}]}
]

我尝试使用 lodash.groupBy,但我根本不知道如何解决这个问题。


使用数组reduce您可以迭代数据并计算结果对象。

const array = [
  { 'red': [ { height: 50 } ] },
  { 'green': [ { height: 20 } ] },
  { 'blue': [ { height: 30 } ] },
  { 'blue': [ { height: 40 } ] },
  { 'red': [ { height: 10 } ] },
  { 'green': [ { height: 60 } ] }
];

const res = array.reduce((acc, element) => {
  // Extract key and height value array
  const [key, heightValue] = Object.entries(element)[0];
  // Get or create if non-exist, and push height value from array, index 0
  (acc[key] || (acc[key] = [])).push(heightValue[0]);
  return acc;
}, {});

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

如何按键对对象数组进行分组? 的相关文章

  • 带换行符的 React/Momentjs 日期格式

    我有一个日期字符串 我想对其进行格式化 其中数字位于月份下 Jul 6 我尝试了几种不同的方法来添加新行
  • 如何使用 HTML 5 实现类似 gmail 的文件上传/附件

    我记得一些支持 Ajax 之类的选项 无回发世界 文件上传 隐藏的 iframe 使用 flash 对象 尽管我仍然好奇为什么使用 SWF 以及它提供什么优势 然而 通过查看博客 HTML 5 似乎很有前途 我尝试了一些小示例 它确实有效
  • 如何判断一个网页是否支持jquery?

    确定网页是否启用 jquery 的最佳方法是什么 如果这是确定它的最佳方法 则使用 jquery 本身 if jQuery jquery object exists jQuery 并不神奇 它本质上只是一个大对象 您可以像检查任何其他对象一
  • 使用 Firefox 插件 sdk 的 nsISocketTransportService

    我正在尝试使用 Firefox 来读取 SSH 横幅 IE 当您最初连接到 SSH 服务器时 服务器会向您发送其横幅 标识服务器软件 并且您向 SSH 服务器发送您的横幅 标识您的客户端软件 为此 我使用以下 URL 中的示例 firefo
  • 如何立即启动setInterval循环? [复制]

    这个问题在这里已经有答案了 在一个简单的setInterval setInterval function Do something every 9 seconds 9000 第一个动作将在 9 秒后发生 t 9s 如何强制循环立即执行第一个
  • 设置双指缩放时精确的滚动位置

    我正在创建一个地图应用程序 它将标记图像放置在画布上并滚动到它 我正在使用浏览器的捏缩放和滚动来放大 缩小地图 然而 我注意到有一些奇怪的行为 我想知道如何解决它 这有点难以解释 但我们开始吧 假设您处于网页的标准缩放级别 无法进一步缩小
  • jQuery输入文件点击方法和IE上拒绝访问

    我尝试仅使用一个按钮作为输入文件 它在 Firefox Chrome Safari 中工作正常 但在 IE 中不行 提交表单时我总是收到 访问被拒绝 的消息 代码 input file click 有真正的解决方法吗 我在谷歌上浪费了大约2
  • JS 保留以零结尾的小数[重复]

    这个问题在这里已经有答案了 在JavaScript中 是否可以 锁定 十进制数 以保留以零结尾的 浮点数 例如 我有 2 个不同的数字 如下所示 伪代码 let a 1 0 let b 1 00 a b true should be fal
  • React JS 服务器端问题 - 找不到窗口

    你好 我正在尝试在我的reactJS项目中使用react rte 我有服务器端渲染 每次我想使用这个包时 我都会得到 return msie 6 9 b test window navigator userAgent toLowerCase
  • 为什么这行带有“await”的代码会触发微任务队列处理?

    以下引用是我理解微任务队列处理的主要参考 当 JS 堆栈清空时 就会处理微任务 承诺使用 杰克 阿奇博尔德 https twitter com jaffathecake status 954653170986311680 这对我来说没有意义
  • 如何在 Web 服务器上设置 gzip 压缩?

    我有一个嵌入式网络服务器 总共有 2 兆空间 通常 您使用 gzip 文件对客户端有利 但这会节省我们在服务器上的空间 我读到你可以只 gzip js 文件并将其保存在服务器上 我在 IIS 上测试过 但没有任何运气 为了使这项工作成功 我
  • 当我多次调用 requestAnimationFrame 时会发生什么

    我的意思是一次调用多个具有相同功能的 requestAnimationFrame function Draw DoSomething function AFunc prepare something requestAnimationFram
  • 如何使用 window.onerror 捕获所有 javascript 错误? (包括道场)

    这个问题是后续问题javascript 如何在弹出警报中显示脚本错误 https stackoverflow com questions 2604976 javascript how to display script errors in
  • 模板中带有 ng-if 的 angularjs 指令

    我正在构建一个在模板内使用 ng if 的指令 奇怪的是 提供给链接函数的元素没有扩展ng if代码 它只是ng if的注释行 经过一番尝试 我发现通过将链接代码包装在 timeout 中似乎可以使其正常工作 但我想知道这是否不是正确的处理
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • 尝试使用 Javascript 解决对称差异

    我正在尝试找出对称的解决方案 使用 javascript 完成以下任务的差异 目标 接受未指定数量的数组作为参数 保留数组中数字的原始顺序 不删除单个数组中数字的重复项 删除数组中出现的重复项 因此 例如 如果输入是 1 1 2 6 2 3
  • 使用 ref 触发反应 dropzone 不起作用

    我正在实现这个库 https github com felixrieseberg React Dropzone Component https github com felixrieseberg React Dropzone Compone
  • Jwt 签名和前端登录身份验证

    我有这个特殊的 jwt sign 函数 Backend const token jwt sign id user id process env TOKEN SECRET expiresIn 1m res header auth token
  • d3.event.translate 在触摸设备的缩放上包含 NaN

    我使用 d3 为我的 svg 编写了一个自定义缩放函数 如下所示 Zoom behavior function myzoom xpos d3 event translate 0 ypos d3 event translate 1 vis a
  • 如何在运行脚本之前提交活动单元格中所做的更改? (Google 表格/Google Apps 脚本)

    我正在使用 Google Apps 脚本在 Google 表格中创建提交表单 该表单位于一页上 提交内容被移至第二个隐藏页面 当用户填写表单后 他们按下提交页面上的按钮以激活脚本 我遇到的问题是 当用户填写最后一个单元格然后单击按钮时 输入

随机推荐

  • ValueError:应在输入列表上调用合并层。张量流 Keras

    我目前正在尝试使用 MobileNetV2 的前 50 层 因此 我想提取这些层并创建一个新模型 我以为我可以调用每一层 但是 block 2 add 层会导致错误 我不明白为什么 import tensorflow as tf from
  • 使用服务器进行表单验证

    我有一个表单 我想通过检查电子邮件是否存在来执行 http 验证 但它返回错误 这是我的表格 在表单组件上 constructor private formBuilder FormBuilder private validationServ
  • 如何隐藏jSlider的旋钮?

    我需要自定义JSlider的旋钮 我需要将我自己的旋钮图像放在 Jslider 的默认旋钮上 问题是目前有两个旋钮做出响应 一个是我自己的旋钮 第二个是默认旋钮 请告诉我如何隐藏默认旋钮或任何其他解决方案 下面的代码用于执行此操作 publ
  • 反向地理编码在某些 Android 设备上不起作用?

    我正在开发一个地图应用程序 无法在该手机中获取地址 其android版本是4 3 如下所示 但它在我的手机上运行良好 其版本是4 1 2 如下所示 它在某些棒棒糖版本中运行良好 final Geocoder gc new Geocoder
  • K8s:如何通过服务访问我的应用程序?

    我正在学习 K8s 并在 OSX 上安装了 minikube 我正在阅读 Nigel Poulton 的 K8s 书 并在第 5 章 部署 中进行实验 我有这样的部署 k8s cat deploy yaml apiVersion apps
  • 将 Azure 流量管理器与移动应用程序结合使用

    Azure 流量管理器可以与移动应用程序一起使用 特别是通过社交登录吗 我已经配置了一个流量管理器和两个应用程序服务 例如 mobileapp1 和 mobileapp2 来使用它 它们似乎与邮递员和响应配合得很好 一切都正常 现在 我已在
  • 如何在Linux中使用addr2line命令?

    我试图在 Unix 中使用 addr2line 命令 但每次它都会给出与 0 相同的输出 我发出命令为addr2line e a out 0x4005BDC 我在运行这个 a out 可执行文件时得到了这个地址valgrind查找内存泄漏的
  • MathJax 未在 Sphinx 中呈现

    我在 Sphinx Rest 中有一个文档集 我已将 sphinx ext mathjax 包含在 conf py 中 并包含行 mathjax path http cdn mathjax org mathjax latest MathJa
  • 在上一个命令失败后创建带有红色 $ 的 Bash 命令提示符

    我是 Bash 编程新手 我正在努力创建一个自定义 Bash 命令提示符 我的目标是创建一个提示 仅在登录名和主机名与我通常使用的不同时显示它们 当位于 Git 版本控制下的目录中时 我还希望将当前的 Git 分支附加到命令提示符 我想将登
  • Android:查找动态创建的视图的ID

    我有以下问题 在 Android Studio 中我生成 enEditText动态地当ExerciseButton被点击 public void exerciseButtonClick View view EditText exercise
  • 在 Vertex AI 用户管理笔记本启动时公开现有环境的内核

    这是一个延续这个线程 发布在这里 因为它太复杂 无法发表评论 TL DR 在 Vertex AI 用户管理笔记本中 如何通过重复的停止和启动周期保留存储在数据磁盘上的现有 venv 以及 conda 如果可能 环境的公开内核图标 Detai
  • 为什么 scrapy xpath 函数不支持 'matches()' 语法?

    我正在运行 scrapy 0 20 2 scrapy shell http newyork craigslist org ata 我想列出广告页面的所有链接 并将其与index html分开 sel xpath a contains hre
  • 我可以配置 Hibernate/JPA 在仅修改非时间戳字段时更新实体记录吗?

    目前我有一个 Hibernate 实体类 如下所示 Entity Table name entity public class Entity implements Serializable private static final long
  • Elixir 到 Erlang 的转换

    我想看看当 Elixir 转换成 Beam 文件时会发生什么 有没有办法在控制台或文件中打印它的翻译方式 我想知道这个模块在 erlang 中是什么样子的 我在想是否有 Elixir 的调试模式 它会输出以上任何内容 更具体地说 我有这个例
  • PHP:oci_bind_by_name 和时间戳字段导致“ORA-01461:只能绑定 LONG 值以插入 LONG 列”

    我有一个 Oracle 数据库 需要将包含 YYYY MM DD HH MM SS 格式的日期的字符串插入 Oracle 时间戳字段中 为此我写了这段代码 date 2013 01 01 10 10 10 sql oci parse c I
  • 使用 nlm 函数进行多变量优化

    nlm 函数可以用于多变量优化吗 那会如何运作呢 例如 我想找到 x 和 y 以使 f x y 最小化 nlm 函数如何工作 类似的东西 nlm f c 0 1 0 1 创建一个接收向量的函数 f lt function X x lt X
  • 如何使用请求访问此类网站? [复制]

    这个问题在这里已经有答案了 这是我第一次遇到不允许我访问网页的网站 我不知道为什么 也不知道如何从这个网站上抓取 我的尝试 import requests from bs4 import BeautifulSoup def html url
  • nasm 系统调用 Linux

    我有一个关于汇编中的 linux x86 系统调用的问题 当我在 Linux 上使用 nasm 创建新的汇编程序时 我想知道必须使用哪些系统调用来执行特定任务 例如读取文件 写入输出或简单的退出 我知道一些系统调用 因为我读过它们在互联网上
  • 如何使用 PuTTY/Plink 在 Windows 批处理文件中的设备上顺序执行多个命令?

    我正在尝试使用 SSH 以自动化方式配置设备 bat脚本 在下面的代码片段中 我以正确的顺序生成一个包含所需命令的文件 然后使用 SSH 连接执行 读取该文件plink 这会导致一条错误消息 命令未知 我认为这是由于命令不是逐一执行而是插入
  • 如何按键对对象数组进行分组?

    如何通过对象键对对象数组进行分组 以根据分组创建新的对象数组 例如 我有一系列汽车对象 const array red height 50 green height 20 blue height 30 blue height 40 red