有没有办法在 Javascript 中组合对象

2023-12-04

我正在用 Javascript 进行一些数据清理,我想知道是否有一种方法可以根据通用 ID 组合对象。

鉴于以下情况:

{"subject":"Hadji Singh","predicate":"nameOfUser","id":"3f540200-58b9-40a5-91c2-faafec75216f"}
{"subject":"Race Roger Bannon","predicate":"nameOfUser","id":"41376a49-34ee-4ed8-b5f5-3f8c92b107f8"}
{"subject":"Jessie Bannon","predicate":"nameOfUser","id":"9575cf33-8992-4763-81bb-fc640ffa3545"}
{"subject":"Adventurer","predicate":"departmentOfUser","id":"3f540200-58b9-40a5-91c2-faafec75216f"}
{"subject":"Bodyguard","predicate":"departmentOfUser","id":"41376a49-34ee-4ed8-b5f5-3f8c92b107f8"}
{"subject":"Adventurer","predicate":"departmentOfUser","id":"9575cf33-8992-4763-81bb-fc640ffa3545"}

有没有办法把它变成这样的东西?

[{id:3f540200-58b9-40a5-91c2-faafec75216f, name:Hadji Singh, department:Adventurer},
{id:9575cf33-8992-4763-81bb-fc640ffa3545, name:Jessie Bannon, department:Adventurer},
{id:41376a49-34ee-4ed8-b5f5-3f8c92b107f8, name:Race Bannon, department:Bodyguard}]

我正在考虑两个 for 循环(也许)和很多 if,但也许我缺少某种方式。

我正在使用node.js,如果这意味着什么的话。也许有一个模块可以提供帮助?

Thanks.


Use reduce数组的方法:

let a = [{"subject":"Hadji Singh","predicate":"nameOfUser","id":"3f540200-58b9-40a5-91c2-faafec75216f"},
{"subject":"Race Roger Bannon","predicate":"nameOfUser","id":"41376a49-34ee-4ed8-b5f5-3f8c92b107f8"},
{"subject":"Jessie Bannon","predicate":"nameOfUser","id":"9575cf33-8992-4763-81bb-fc640ffa3545"},
{"subject":"Adventurer","predicate":"departmentOfUser","id":"3f540200-58b9-40a5-91c2-faafec75216f"},
{"subject":"Bodyguard","predicate":"departmentOfUser","id":"41376a49-34ee-4ed8-b5f5-3f8c92b107f8"},
{"subject":"Adventurer","predicate":"departmentOfUser","id":"9575cf33-8992-4763-81bb-fc640ffa3545"}]

let b = a.reduce((acc, val) => {
  let id = val.id
  let idx = acc.findIndex((e) => e.id == id);
  let subj = { id: id }
  let predicate = val['predicate'].split('OfUser')[0]
  subj[predicate] = val['subject']
  if (-1 == idx) {
    acc.push(subj);
  } else {
    acc[idx] = Object.assign(acc[idx], subj);
  }
  return acc
}, [])

console.log(b);

//[ { id: '3f540200-58b9-40a5-91c2-faafec75216f',
//    name: 'Hadji Singh',
//    department: 'Adventurer' },
//  { id: '41376a49-34ee-4ed8-b5f5-3f8c92b107f8',
//    name: 'Race Roger Bannon',
//    department: 'Bodyguard' },
//  { id: '9575cf33-8992-4763-81bb-fc640ffa3545',
//    name: 'Jessie Bannon',
//    department: 'Adventurer' } ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在 Javascript 中组合对象 的相关文章

  • 需要帮助从数组中为国家/地区着色,保留其余默认颜色

    我需要一些帮助从我创建的数组中获取数据 然后仅对数组中存在的国家 地区进行着色 而不在数组中的其余国家 地区我希望保留为默认颜色 我正在使用 D3 来完成所有这些工作 并且我非常确定我可以通过 D3 实现我需要的目标 但不确定如何实现 我想
  • 当条件满足时如何打破CasperJS的重复功能?

    我想知道是否可以打破 casper repeat 循环 我有这个脚本可以做到这一点 在谷歌上搜索特工001 特工002 特工003 特工004 特工005 特工006 直到特工011 我希望它在找到文本 詹姆斯 邦德 后停止循环 现在它找到
  • 单击上一页的按钮路由到该页面后如何刷新页面

    我有 2 个页面 一个主页和一个页面 2 当我单击主页上的按钮时 它会路由到 page2 现在 单击主页上的按钮后 当我到达第 2 页时 它应该刷新 因为我的项目中存在一些缓存问题 我在ngoninit上添加了window location
  • 如何使用 JavaScript 将当前页面设置为 about:blank?

    我遇到的情况是服务器可能在当前地址上不可用 因此我想检测到这一点并将页面重定向到 about blank 页面 我该如何使用 JavaScript 来做到这一点 window location href about blank
  • 将随机字符串转换为十六进制颜色

    我的应用程序中有一个操作日志表 我想根据该条目的 sessionID 为行分配随机颜色 以帮助查看模式 分组操作 到目前为止我有这个 console log stringToColorCode mj3bPTCbIAVoNr93me1I fu
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • 使用 javascript 禁用按钮:FF 与 IE

    我有一排按钮 它们都会创建一个我想在新选项卡中打开的 pdf 文件 这样按钮页面就会保持在顶部 并且 pdf 会打开以进行打印 为了防止单击按钮两次 我禁用该按钮 如下所示 我使用 python
  • 默认情况下嵌入带字幕的 Youtube 不起作用

    我正在尝试嵌入 Youtube 电影 并希望默认情况下打开字幕 From https developers google com youtube player parameters cc load policy https develope
  • mouseover 和 mouseout 事件在子进程上触发

    代码 div div div div 如果我将鼠标悬停在Navigation the Drop Downdiv 向下滑动 如果我将鼠标移开 它会向上滑动 问题是如果我将鼠标悬停在孩子上Drop Downdiv它也向上滑 动 有谁知道我该如何
  • nodejs mocha suite 未定义错误

    我正在尝试使用摩卡运行一些测试 但似乎无法克服这个错误 E tdd nodejs cart gt mocha cart test js node js 201 throw e process nextTick error or err Re
  • Backbone 中的加载栏

    我想显示加载消息 图标 直到列表中的所有项目都已呈现 这是我的示例中的 jsfiddle http jsfiddle net 9R9zU 58 http jsfiddle net 9R9zU 58 我尝试在 Feed 部分添加一个带有加载栏
  • 嵌套辅助函数和性能

    嵌套辅助函数对于使代码更易于理解非常有用 谷歌甚至建议在他们的应用程序中使用嵌套函数时尚指南 https google styleguide googlecode com svn trunk javascriptguide xml Nest
  • 这种 JavaScript 编码风格有什么问题? (闭包与原型)

    我们一直在讨论如何最好地处理我们的 JS 应用程序中的对象 研究 Stoyan Stefanov 的书 阅读无数关于 新 这个 原型 闭包等的 SO 帖子 事实上有很多 而且它们有这么多相互竞争的理论 表明没有完全明显的答案 让我们假设我们
  • 如何创建自定义元素扩展类的新实例

    我正在尝试以下示例谷歌开发者网站 https developers google com web fundamentals getting started primers customelements extendhtml我收到错误 Typ
  • 在overlayImage中应用滤镜的方法在哪里?

    我想在overlayImage中应用一个过滤器 唯一的方法是在渲染后在整个画布上应用过滤器 对此没有内置支持 但很容易 破解 var overlayImageUrl load overlay image first fabric Image
  • Javascript 中的线性回归 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在网络浏览器中用 Javascript 进行最小二乘拟合 目前 用户使用 HTML 文本输入输入数
  • React + Semantic-UI:在 UI MODAL 中使用表单

    在没有 React 的普通旧 Semantic UI 中 我已经能够毫无问题地将表单放入 Modal 中 使用 Semantic UI React 版本 我能够在模态中显示表单 但它并没有按照我期望的方式工作 例如 模态框显示后 模态框内的
  • javascript:window.print() 打印 2 页,而我有 1 页

    我有一个简单的 HTML 文档 其中仅包含图像标签 我想在文档加载后打印图像 我的代码 img src form1 jpg alt form1 style margin 0 auto display block 它可以工作 但问题是它打印图
  • 更改javascript nodejs中所有页面的href url

    我已经实现了具有多种语言下拉菜单的引导导航栏 当我选择语言时 它将翻译页面 如何更改其他页面的 url 和按钮文本 当我选择french 将所有网址更改为 fr about and fr contact 如何使用 JavaScript 进行
  • 使用 javascript Array reduce() 方法有什么真正的好处吗?

    reduce 方法的大多数用例都可以使用 for 循环轻松重写 对 JSPerf 的测试表明 reduce 通常会慢 60 75 具体取决于每次迭代内执行的操作 除了能够以 函数式风格 编写代码之外 还有什么真正的理由使用reduce 吗

随机推荐

  • 如何指示应首先编辑变量

    我有以下实时模板 import NAME from PATH END 当它插入编辑器时 输入变量的顺序定义为 import 1 from 2 有什么办法可以改成 import 2 from 1 只需使用编辑变量编辑该实时模板时按钮 然后使用
  • 在 2.2 上获取 ListView 项目的视图/逆序;适用于 4.0.3

    我有一个 ListView 它显示 ArrayAdapter 中的项目 我想在点击视图时为其设置动画 问题是在不同版本的 android 上我得到不同的视图 见下文 我使用此方法从 ListActivity 获取视图 private Vie
  • Java:如何使用UrlConnection发送授权请求?

    我想向需要身份验证的服务器生成 POST 请求 我尝试使用以下方法 private synchronized String CreateNewProductPOST String urlString String encodedString
  • 如何将 KB2670838 包含在 InstallShield 2013 的安装程序中?

    我正在使用 InstallShield 2013 为需要的应用程序制作基本 MSI 安装程序Windows 平台更新 KB2670838 对于 NET 框架和其他要求 我在 Redistributables 部分的 InstallShiel
  • 使用包含竖线的正则表达式匹配字符串

    I have 123 456 789 我只能捕捉 123 使用正则表达式 d 但不确定如何捕获完整的字符串 我对此很陌生 我将感谢任何帮助 d 这应该有效 从竖线开始 重复数字和可选的竖线
  • Graphviz---随机节点顺序和经过标签的边

    我有以下点文件 digraph finite state machine rank same node shape doublecircle q 5 node shape circle q 1 gt q 2 label q 1 gt q 2
  • 无法使用pip安装python包,需要获取Microsoft Visual C++ 14.0

    我正在尝试安装pyjks 我正在管理命令提示符下运行所有 内容 最初尝试安装 pyjks 的结果是 C WINDOWS system32 gt pip install pyjks Collecting pyjks Collecting py
  • 带标题的 PHP Mail() 函数

    当我将 header 与 PHP mail 函数一起使用时 我总是很困难 问题总是一样的 去年 这次 只要我记得 就让我抓狂 问题在于标题仅显示在电子邮件中 收到的邮件示例 Source onderwerp Bedankt voor uw
  • 防止 jQuery Mobile 上的水平滚动

    有没有办法最好仅使用 CSS 来防止移动设备上的水平页面滚动 这是一个例子 http jsfiddle net YfLst 15 Update 以下代码解决了 iOS 上的问题 但 Android 上的问题仍然存在 html body ov
  • 如何在 Eclipse 中以调试模式运行外部工具

    由于各种原因 我的项目只能作为已完成且打包的 JAR 运行 组装时会发生一些神奇的事情 因此我将其作为 Eclipse 中的外部工具运行 我缺少的是调试功能 有没有办法在 Eclipse 中以调试模式运行外部工具 如果远程 JVM 已在调试
  • 记录完成谷歌表单所需的时间

    我正在尝试记录完成并提交 Google 表单所需的总时间 我的逻辑很简单 以下代码将记录时间戳并将其作为多项选择选项 然后 在提交表单后 我们无论如何都会得到一个时间戳 但与此同时 我们也会得到最初记录的时间戳作为该问题的答案 这是我可爱的
  • JSONEncoder 的 dateEncodingStrategy 不起作用

    我正在尝试使用 Swift 4 的 Encodable JSONEncoder 将结构序列化为字符串 该对象可以保存异构值 例如 String Array Date Int 等 除了日期之外 所使用的方法工作正常 JSON编码器的dateE
  • 如何派生具有类型族的记录的实例

    这是我正在尝试但无法编译的内容 LANGUAGE TypeFamilies LANGUAGE StandaloneDeriving LANGUAGE FlexibleInstances import Data Text as T impor
  • URL缩短网站

    我正在开发一个使用 PHP MySQL 和 Apache 的 URL 缩短网站 当我查看开源项目时 URL 缩短的总体思路是 用户提供 URL 链接 系统从数据库获取该链接的 ID 然后转换 ID X 基数系统 我使用的是 36 基数 然后
  • 删除连续的重复单元格

    只是为了澄清 我不想删除重复的行 我想删除行中的重复单元格 这是一个经典的地址表 在某些行中有重复的条目 我需要删除这些条目 我在 VBA 中看到的大部分内容都是用于删除列中的重复值 但我找不到删除行中的重复值的方法 Name Addres
  • 是否有工具/解决方案可以对循环进行编程,其中仅每 X 次迭代检查一次条件?

    例如 我有一个由 while 循环组成的函数 这个函数会检查素数 function isprime int number int i 2 int max int sqrt number 1 while i
  • 将中立者放在一边的李克特图

    我正在使用 Likert 包来创建调查问卷图 我想创建一个像这样的情节 其中中性反应被搁置 你知道在 R 中是否有办法做到这一点 一个如何重现情节的简单例子 lst lt c I dislike them a lot I dislike t
  • 如何将 facebook api 中的日期转换为 android 应用程序日期格式

    我正在开发一个类似于 android facebook 应用程序的应用程序 我从 Facebook 应用程序获得了创建的时间字段 created time 2012 11 28T12 53 40 0000 那么 我怎样才能将其转换为 and
  • C 指针:数组变量

    我在我的书中读到了这一点 以及互联网上的许多来源 数组变量points到数组中的第一个元素 如果为真 则数组变量和第一个元素是不同的 Right 这意味着通过下面的代码 它将产生两种不同的结果 int main char msg stack
  • 有没有办法在 Javascript 中组合对象

    我正在用 Javascript 进行一些数据清理 我想知道是否有一种方法可以根据通用 ID 组合对象 鉴于以下情况 subject Hadji Singh predicate nameOfUser id 3f540200 58b9 40a5