javascript - 如何在javascript中收集值?

标签 javascript arrays node.js object

我在 Javascript 中有一个像这样的数组。像这样的事情

[
  {
    "id": 1,
    "facilities": [
      {
        "id": 10,
        "name": "Wifi",
        "label": "Wifi"
      },
      {
        "id": 12,
        "name": "Toll",
        "label": "Toll"
      }
    ]
  },
  {
    "id": 2,
    "facilities": [
      {
        "id": 10,
        "name": "Wifi",
        "label": "Wifi"
      },
      {
        "id": 12,
        "name": "Toll",
        "label": "Toll"
      },
      {
        "id": 13,
        "name": "Snack",
        "label": "Snack"
      }
    ]
  },
  {
    "id": 3,
    "facilities": [
      {
        "id": 10,
        "name": "Wifi",
        "label": "Wifi"
      },
      {
        "id": 12,
        "name": "Toll",
        "label": "Toll"
      },
      {
        "id": 14,
        "name": "Petrol",
        "label": "Petrol"
      }
    ]
  }
]

我想在Javascript中收集数据并对数组的数据进行分组,就像这样。

"facilities": [
      {
        "id": 10,
        "name": "Wifi",
        "label": "Wifi"
      },
      {
        "id": 12,
        "name": "Toll",
        "label": "Toll"
      },
      {
        "id": 13,
        "name": "Snack",
        "label": "Snack"
      },
      {
        "id": 14,
        "name": "Petrol",
        "label": "Petrol"
      }
    ]

所以,基本上是按设施分组。我只是不知道如何处理类似设施值的分组。

最佳答案

假设设施id是唯一的:

const facilities = input.reduce((memo, entry) => {
  entry.facilities.forEach((f) => {
    if (!memo.some((m) => m.id === f.id)) {
      memo.push(f)
    }
  })
  return memo
}, [])

关于javascript - 如何在javascript中收集值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42550494/

相关文章:

node.js - 在 Angular CLI 应用程序中安装 express 时出现 "ENOTEMPTY: directory not empty, rmdir ....."错误。

javascript - 删除在平板电脑模式下不起作用的事件元素

arrays - 获取 Perl 数组中两个值之间的所有元素的最有效方法

arrays - 如何使用 ExSwift Array.toDictionary?

javascript - 使用 Mongoose 中对象数组的循环保存模型。全部插入后需要回调

mysql - 为什么模型没有在 Sequelize 中获取表中的所有属性

javascript - Node.js 中的 jQuery.each()?

javascript - 为什么使用循环从数组开始到结束迭代比从开始到结束和结束到开始迭代更快?

javascript - 具有多个 CSS 文件的 Google PageSpeed Insights

javascript - 如何在 Javascript 代码中更改数据库值,但不允许用户在 Javascript 控制台中更改(或访问)数据库值?