Javascript - 根据公共值重构对象数组

用户3523583

我的对象输入数组是这样的,我有一个如下所示的输入数组:

[{"id": 657, "name": "Amadeus Basin", "contenttype": "province"}
{"id": 1173, "name": "Amazonas Basin", "contenttype": "province"}
{"id": 373, "name": "American Samoa", "contenttype": "countries"}
{"id": 1, "name": "Samoa", "contenttype": "marine"}
{"id": 796, "name": "Amhara", "contenttype": "province"}]

我想实现的是:

[
    {
    "contenttype": "province",
    "content" : [
        {
            "id": 657,
            "name": "Amadeus Basin"
        },
        {
            "id": 1173,
            "name": "Amazonas Basin"
        },
        {
            "id": 796,
            "name": "Amhara"
        }
    ]
    }, {

        "contenttype": "countries",
        "content": [
            {
                "id": 373,
                "name" : "American Samoa"
            }
        ]

    },
    {
        "contenttype": "countries",
        "content": [
        {
            "id": 1,
            "name" : "Samoa"
        }
    ]

    }

]

根据一个值拆分数组中的对象,并在这些新创建的对象中创建相同对象的子数组。使用 lodash 也会很好。

苏伦·斯拉皮安

您可以使用reduce函数迭代每个项目,然后检查它是否存在于数组中,如果没有找到,则添加新的,如果找到 - 推入它

const data = [{"id": 657, "name": "Amadeus Basin", "contenttype": "province"},
{"id": 1173, "name": "Amazonas Basin", "contenttype": "province"},
{"id": 373, "name": "American Samoa", "contenttype": "countries"},
{"id": 1, "name": "Samoa", "contenttype": "marine"},
{"id": 796, "name": "Amhara", "contenttype": "province"}];

const grouped = data.reduce((acc, item) => {

  const found = acc.find(i => i.contenttype === item.contenttype);
  const content = {id: item.id, name: item.name};
  
  if(found) {
     found.content.push(content);
  } else {
     acc.push({contenttype: item.contenttype, content: [content] })
  }
  
  return acc;

}, []);

console.log(grouped);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据Javascript中的公共值合并同一数组中的对象

来自分类Dev

根据输入值/ javascript过滤数组对象

来自分类Dev

Javascript:根据子对象值在数组中获取对象

来自分类Dev

根据对象字段值查找javascript“对象数组”的索引

来自分类Dev

Javascript:根据子对象值在数组中获取对象

来自分类Dev

根据对象的值将javascript对象键排序为数组

来自分类Dev

JavaScript中的重构数组和对象

来自分类Dev

javascript-根据数组值选择json对象项

来自分类Dev

JavaScript 根据值对对象数组进行排序(条件排序)

来自分类Dev

javascript根据属性值从数组中删除所有对象

来自分类Dev

Javascript:根据对象上嵌套数组中的值在数组中查找对象的索引

来自分类Dev

在 Javascript 中重构对象

来自分类Dev

根据多值对象过滤JavaScript对象数组

来自分类Dev

如何使用javascript根据另一个数组值过滤对象数组?

来自分类Dev

Javascript根据两个值对对象值的相同数组进行计数

来自分类Dev

从数组值创建JavaScript对象

来自分类Dev

JavaScript数组对象和值

来自分类Dev

如何使用javascript根据另一个数组对象的属性值过滤对象数组

来自分类Dev

根据日期对JavaScript对象数组进行排序

来自分类Dev

如何在JavaScript中根据对象值对数组进行排序?

来自分类Dev

JavaScript-合并两个对象数组并根据属性值进行重复数据删除

来自分类Dev

根据javascript中的出现将新值添加到对象数组

来自分类Dev

根据值对JavaScript数组项进行分组

来自分类Dev

使用 JavaScript 从多个数组中检索公共值

来自分类Dev

根据数组对象列表对Javascript对象进行分组

来自分类Dev

根据公共值链接数组

来自分类Dev

Javascript中新对象数组中数组对象属性值的总和

来自分类Dev

Javascript警报数组/对象值

来自分类Dev

Javascript:将对象值数组放入div

Related 相关文章

  1. 1

    根据Javascript中的公共值合并同一数组中的对象

  2. 2

    根据输入值/ javascript过滤数组对象

  3. 3

    Javascript:根据子对象值在数组中获取对象

  4. 4

    根据对象字段值查找javascript“对象数组”的索引

  5. 5

    Javascript:根据子对象值在数组中获取对象

  6. 6

    根据对象的值将javascript对象键排序为数组

  7. 7

    JavaScript中的重构数组和对象

  8. 8

    javascript-根据数组值选择json对象项

  9. 9

    JavaScript 根据值对对象数组进行排序(条件排序)

  10. 10

    javascript根据属性值从数组中删除所有对象

  11. 11

    Javascript:根据对象上嵌套数组中的值在数组中查找对象的索引

  12. 12

    在 Javascript 中重构对象

  13. 13

    根据多值对象过滤JavaScript对象数组

  14. 14

    如何使用javascript根据另一个数组值过滤对象数组?

  15. 15

    Javascript根据两个值对对象值的相同数组进行计数

  16. 16

    从数组值创建JavaScript对象

  17. 17

    JavaScript数组对象和值

  18. 18

    如何使用javascript根据另一个数组对象的属性值过滤对象数组

  19. 19

    根据日期对JavaScript对象数组进行排序

  20. 20

    如何在JavaScript中根据对象值对数组进行排序?

  21. 21

    JavaScript-合并两个对象数组并根据属性值进行重复数据删除

  22. 22

    根据javascript中的出现将新值添加到对象数组

  23. 23

    根据值对JavaScript数组项进行分组

  24. 24

    使用 JavaScript 从多个数组中检索公共值

  25. 25

    根据数组对象列表对Javascript对象进行分组

  26. 26

    根据公共值链接数组

  27. 27

    Javascript中新对象数组中数组对象属性值的总和

  28. 28

    Javascript警报数组/对象值

  29. 29

    Javascript:将对象值数组放入div

热门标签

归档