如何移动嵌套数组中的元素

2023-12-02

我想移动嵌套数组中的元素。所以,这是我的数据:

let products = [
    {     
      "product_name": "A",
      "_id": "5ace995c14a759325776aab1",
      "transactions": [
        {
          "_id": "5ad3a274ac827c165a510f99",
          "qty": 100,
          "price": 2000
        },
        {
          "_id": "5ad3a274ac827c165a510f99",
          "qty": 80,
          "price": 1500
        },
      ]
    },
    {
      "product_name": "B",
      "_id": "5ace995914a759325776aab0",
      "transactions": [
        {
          "_id": "5ad3a274ac827c165a510f9b",
          "qty": 80,
          "price": 1500
        }
      ],
    }
  ]

我期望的输出:

[
  {
    "_id": "5ad3a274ac827c165a510f99",
    "qty": 100,
    "price": 2000,
    "product_name": "A",
  },
  {
    "_id": "5ad3a274ac827c165a510f99",
    "qty": 80,
    "price": 1500,
    "product_name": "A",
  },
  {
    "_id": "5ad3a274ac827c165a510f9b",
    "qty": 80,
    "price": 1500,
    "product_name": "B",
  }
]

然后,我的解决代码:

function move() {
  var result = []
  for (product of products) {
    for (transaction of product.transactions) {
      transaction.product_name = product.product_name
      result.push(transaction)
    }
  }
  return result
}
product = move()

有没有有效的方法来创建输出,也许使用数组映射或其他东西?谢谢。


你可以把transactions with Array#reduce并使用Object.assign用于添加product_name.

还使用:

  • 解构赋值对于属性和

  • 速记属性用于将变量作为属性并以名称作为键。

var products = [{ product_name: "A", _id: "5ace995c14a759325776aab1", transactions: [{ _id: "5ad3a274ac827c165a510f99", qty: 100, price: 2000 }, { _id: "5ad3a274ac827c165a510f99", qty: 80, price: 1500 }] }, { product_name: "B", _id: "5ace995914a759325776aab0", transactions: [{ _id: "5ad3a274ac827c165a510f9b", qty: 80, price: 1500 }] }],
    result = products.reduce((r, { transactions, product_name }) =>
        r.concat(transactions.map(t => Object.assign({}, t, { product_name }))),
        []
    );
  
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何移动嵌套数组中的元素 的相关文章

随机推荐

  • 如何获取QTableView右键索引

    下面的代码创建一个带有QTableView看法 左键单击onLeftClick函数获取 QModelIndexindex 该 QModelIndex 稍后用于打印左键单击单元格的行号和列号 如何获得QModelIndex右键单击的单元格的索
  • ffmpeg:编辑元数据并自动增加其名称+根据“名称”设置“标题”的值

    此 PowerShell 代码分割了一个大的音频文件 sound1 在 5 分钟内将它们保存为sound100 1 mp3 sound1 002 mp3 ffmpeg i file name complete f segment segme
  • 从 Bool 数组返回索引值数组,其中 true

    任何人都知道一种从值为 true 的布尔数组返回索引值数组的优雅方法 例如 let boolArray true true false true 这应该返回 0 1 3 let boolArray true true false true
  • 带图像的 Foreach 循环

    我有一个 80 PNG 图像序列 我试图在其中为我的 Windows 应用程序创建动画 文件路径是 Assets Star 我试图弄清楚如何为文件夹中的每个图像创建 foreach 循环 因此它将图像对象设置为 Image1 然后在计时器经
  • 为什么我的 div 的边距会受到其内部内容/块的影响?

    我有以下内容 div p some content p div or div some content div 没有 p some content p div的定位不同 看起来 div 内的块内容正在影响 div 的外 顶部 边距 那么di
  • 将 Pandas 数据框放入现有 Excel 工作表

    有没有办法将数据框放入现有的 Excel 工作表中 我有一个数据框 需要将其复制到特定的 Excel 工作表中的特定位置 单元格 A2 这样它将镜像 粘贴 整个数据框 从选定的单元格 如图所示 开始 包括下面的单元格 这样我就不必一一为特定
  • 哪里可以获得 Eclipse 的 ADT 18?

    我的 eclipse 将 ADT 更新为 20 我认为这很糟糕 我想恢复到 18 但找不到从哪里下载 In here https dl ssl google com android eclipse 它仅提供版本 20 Thanks 下载此文
  • 使用 CSS,如何创建*粗*超过 1 像素的文本描边轮廓?

    下面是我用来制作 1px 文本描边轮廓的代码 但是如何使轮廓变粗呢 如果我只是将所有 1px 替换为 5px 结果看起来很疯狂 HTML div class element Hello div CSS element color white
  • 如何利用HTTP header XSS漏洞?

    假设一个页面只是打印 HTTP referer 标头的值 没有转义 因此 该页面容易受到 XSS 攻击 即攻击者可以使用包含类似内容的引用标头来制作 GET 请求 但如何才能真正使用它来攻击目标呢 攻击者如何使用该特定标头向目标发出特定请求
  • 为类型别名元组添加 Impl (f64, f64)

    我有一个自定义类型 Point type Point f64 f64 我想添加两个Point在一起 但我收到此错误 error E0368 binary assignment operation cannot be applied to t
  • 后续:从 lme4 中的 VarCorr 对象中提取名称并将其粘贴为列名称

    我正在跟进这个很好的答案 功能foo下面 取Name的列VarCorr fit 输出并使它们成为列名summary rePCA fit call 当我们输入时效果很好fm1 fm2 但我想知道为什么它失败了fm3 有解决办法吗 librar
  • 我有 recyclerview 和 searchview 如何发送有关我搜索的项目的详细信息数据

    我有带有 searchview 的 recyclerview 并且在 recyclerview 中选择项目时发送详细数据 问题是当我搜索项目并选择它时 详细信息数据不会更改总是出现第一个项目的详细信息数据 我如何发送有关我搜索的项目的详细数
  • 如何使实体只读?

    使用 JPA 使实体只读的正确方法是什么 我希望我的数据库表永远不会以编程方式修改 我想我明白我应该用以下方式锁定我的对象LockModeType READ 是否可以使用注释使我的实体在从数据库检索后直接锁定 或者我是否必须为该特定实体搞乱
  • 在查询结束之前开始查看查询结果

    假设我查询一个包含 500K 行的表 我想开始查看获取缓冲区中保存结果集的任何行 即使查询尚未完成 我想滚动浏览提取缓冲区 如果我滚动得太远 我想显示一条消息 例如 到达获取缓冲区的最后一行 查询尚未完成 当查询继续构建结果集时 可以使用
  • 类定义如何才能不占用内存呢?

    所以我读过this关于类定义是否占用内存以及this关于if函数占用内存 这是我不明白的 如果函数占用内存 或者它们的代码占用内存 类定义为什么不占用内存 我的意思是 类定义也是代码 所以它不应该像函数代码一样占用内存吗 说类定义不占用内存
  • 在R中打印unicode字符串

    我输入了一个文本字符串 csvfile 其中包含 unicode 符号 如下所示 U00B5克 分升 在 csv文件以及在 R 数据帧中读取 test read csv test csv U00B5将产生微符号 R 按原样将其读入数据文件
  • 使用多个线程多次调用一个方法

    我想要一个 LED 闪烁 同时我的 Raspberry 上正在做一些工作 我在 Python 脚本中使用 LED 线程 初始代码 import RPi GPIO import time import threading pinLED 10
  • ModelState 对于可为 null 的属性无效

    我有一个模型 其中属性 CompanyID 允许空值 public partial class ReportTemplateItem Key public int ReportTemplateItemID get set Required
  • 如果 Google 表格中的单元格发生更改,则触发电子邮件

    我有一张表 我们可以在 Google 表格中跟踪部门指标 当指标发生变化时 我试图将其发送到电子邮件 我正在使用 counta 在范围 P2 中 来监视是否有新指标进入 并且我想在范围内的值发生变化时触发电子邮件 function onEd
  • 如何移动嵌套数组中的元素

    我想移动嵌套数组中的元素 所以 这是我的数据 let products product name A id 5ace995c14a759325776aab1 transactions id 5ad3a274ac827c165a510f99