删除重复的对象,并将其数组元素与其他Javascript合并

认识辛格

我开发了许多复杂的项目。但是,我总是陷于简单的事情中。任何人都可以指导或分享一些文档来培训这些常见的逻辑问题。我有一组对象,这些对象可以重复。

每个对象都有一个数组属性权限:['add','remove']。我想删除可重复对象并获取其权限数组属性,并将其与我们发现的对象合并。权限数组应具有唯一值。

也请引导我指向一些站点或书籍,这将帮助我解决逻辑问题

const arr = [
  { id: 1, permission: ['add', 'remove'] },
  { id: 2,  permission: ['add', 'upload']},
  { id: 2, permission: ['add', 'remove', 'edit'] },
  { id: 3, permission: ['add', 'remove'] },
  { id: 4, permission: ['add', 'remove'] },
  { id: 5, permission: ['add', 'read'] },
  { id: 5, permission: ['read', 'remove'] },
  { id: 6, permission: ['add', 'remove'] },
];
// Result I am looking for.
[
  { id: 1,  permission: ['add', 'remove'] },
  { id: 2,  permission: ['add', 'remove', 'edit', 'upload'] },
  { id: 3,  permission: ['add', 'remove'] },
  { id: 4,  permission: ['add', 'remove'] },
  { id: 5,  permission: ['add','read', 'remove'] },
  { id: 6,  permission: ['add', 'remove'] },
];

// Tried so far 

const seen = new Set();

const fa = arr.filter((el) => {
  const duplicate = seen.has(el.id);
  seen.add(el.id);
  return !duplicate;
});
通过

这将工作!!!

var arr = [
  { id: 1, permission: ['add', 'remove'] },
  { id: 2,  permission: ['add', 'upload']},
  { id: 2, permission: ['add', 'remove', 'edit'] },
  { id: 3, permission: ['add', 'remove'] },
  { id: 4, permission: ['add', 'remove'] },
  { id: 5, permission: ['add', 'read'] },
  { id: 5, permission: ['read', 'remove'] },
  { id: 6, permission: ['add', 'remove'] },
];

var res = [];

for (var i = 0; i< arr.length; i++) {
    if(res.length == 0) res.push(arr[i]);
    else {
       if ( !res.find(item => item.id == arr[i]['id'])) {
            res.push(arr[i]);
       }
        else  {
            var resIndex = res.findIndex(item => item.id == arr[i]['id']);
            for(var j=0; j<arr[i]['permission'].length; j++) {
                if(res[resIndex]['permission'].indexOf(arr[i]['permission'][j]) === -1) res[resIndex]['permission'].push(arr[i]['permission'][j]);
            }
        }
    }
}

console.log(res);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无服务器-如何动态添加从javascript文件生成的资源并将其与其他资源合并?

来自分类Dev

合并相同的对象属性名称,并将其他属性合并到一个数组对象中

来自分类Dev

在数组中查找重复的对象值并将其合并-JAVASCRIPT

来自分类Dev

从列表中删除与其他对象重复的对象(具有相同的变量)

来自分类Dev

从其父元素中删除元素并将其附加到其他元素

来自分类Dev

如果其对象的ID与其他数组对象相同,如何删除该对象

来自分类Dev

保留数组的一些起始元素,并将其他元素设置为R

来自分类Dev

比较相同数组的对象,并在特定属性与其他对象匹配时将其一些属性分组

来自分类Dev

创建指向对象的二维数组并将其传递给其他类

来自分类Dev

Swift Combine-在N个对象数组内的对象中观察属性并与其他属性合并

来自分类Dev

C指针数组与其他指针数组的元素

来自分类Dev

从数组中删除元素,然后将其他元素移到上方

来自分类Dev

数组对象与其他对象有何不同

来自分类Dev

数组对象与其他对象有何不同

来自分类Dev

对象数组,与其他数组比较并过滤

来自分类Dev

如何过滤对象数组并将其合并为单个对象?

来自分类Dev

javascript - 如何将数组中的每个元素与不同数组中的其他元素合并?

来自分类Dev

遍历多维数组并删除重复项并合并其他值

来自分类Dev

如何在单击li元素时添加“活动”类并将其从其他元素中同时删除?

来自分类Dev

在多维数组的开头添加元素,并将其他元素推到下一行PHP

来自分类Dev

在多维数组的开头添加元素,并将其他元素推到下一行PHP

来自分类Dev

删除归因并将其放置在其他位置

来自分类Dev

比较两个 json 对象并删除元素,然后将结果 json 与其他 json 文件进行比较

来自分类Dev

从对象值设置变量并将其用作其他变量

来自分类Dev

Javascript如何将数组中的第一个元素与其他元素进行比较

来自分类Dev

访问对象中的嵌套键并将它们与其他对象键进行比较,但是第二个是对象数组

来自分类Dev

检查从ajax响应获取的对象的javascript数组中是否存在值并将其删除

来自分类Dev

选择一列并将其数量与其他行相加

来自分类Dev

定义自定义Grunt任务并将其与其他人链接

Related 相关文章

  1. 1

    无服务器-如何动态添加从javascript文件生成的资源并将其与其他资源合并?

  2. 2

    合并相同的对象属性名称,并将其他属性合并到一个数组对象中

  3. 3

    在数组中查找重复的对象值并将其合并-JAVASCRIPT

  4. 4

    从列表中删除与其他对象重复的对象(具有相同的变量)

  5. 5

    从其父元素中删除元素并将其附加到其他元素

  6. 6

    如果其对象的ID与其他数组对象相同,如何删除该对象

  7. 7

    保留数组的一些起始元素,并将其他元素设置为R

  8. 8

    比较相同数组的对象,并在特定属性与其他对象匹配时将其一些属性分组

  9. 9

    创建指向对象的二维数组并将其传递给其他类

  10. 10

    Swift Combine-在N个对象数组内的对象中观察属性并与其他属性合并

  11. 11

    C指针数组与其他指针数组的元素

  12. 12

    从数组中删除元素,然后将其他元素移到上方

  13. 13

    数组对象与其他对象有何不同

  14. 14

    数组对象与其他对象有何不同

  15. 15

    对象数组,与其他数组比较并过滤

  16. 16

    如何过滤对象数组并将其合并为单个对象?

  17. 17

    javascript - 如何将数组中的每个元素与不同数组中的其他元素合并?

  18. 18

    遍历多维数组并删除重复项并合并其他值

  19. 19

    如何在单击li元素时添加“活动”类并将其从其他元素中同时删除?

  20. 20

    在多维数组的开头添加元素,并将其他元素推到下一行PHP

  21. 21

    在多维数组的开头添加元素,并将其他元素推到下一行PHP

  22. 22

    删除归因并将其放置在其他位置

  23. 23

    比较两个 json 对象并删除元素,然后将结果 json 与其他 json 文件进行比较

  24. 24

    从对象值设置变量并将其用作其他变量

  25. 25

    Javascript如何将数组中的第一个元素与其他元素进行比较

  26. 26

    访问对象中的嵌套键并将它们与其他对象键进行比较,但是第二个是对象数组

  27. 27

    检查从ajax响应获取的对象的javascript数组中是否存在值并将其删除

  28. 28

    选择一列并将其数量与其他行相加

  29. 29

    定义自定义Grunt任务并将其与其他人链接

热门标签

归档