Javascript 动态删除数组对象中数组的重复元素

Javascript 动态删除数组对象中数组的重复元素,javascript,Javascript,我检查了其他解决方案,但没有一个符合我问题的标准 问题总结 我希望创建一个算法,能够检查具有不同数据类型节点的对象,检查特定数据类型数组节点中的重复对象 我有以下数据集: task = { content: "lorem....", customer: [ { id: 1, name: "hello" }, { id: 2, name: "sup" }, ], end: "2020-08-13

我检查了其他解决方案,但没有一个符合我问题的标准

问题总结

我希望创建一个算法,能够检查具有不同数据类型节点的对象,检查特定数据类型数组节点中的重复对象

我有以下数据集:

task = {
  content: "lorem....",
  customer: [
    { id: 1, name: "hello" },
    { id: 2, name: "sup" },
  ],
  end: "2020-08-13 10:09:48",
  project: [{ id: 1 }, { id: 1 }, { id: 2 }],
  vendor: [{ id: 2 }, { id: 2 }, { id: 3 }],
};

我希望能够动态检查哪些对象(或节点?算法必须识别它是一个数组)具有重复项,并将其简化为以下形式:

task = {
  content: "lorem....",
  customer: [
    { id: 1, name: "hello" },
    { id: 2, name: "sup" },
  ],
  end: "2020-08-13 10:09:48",
  project: [{ id: 1 }, { id: 2 }],
  vendor: [{ id: 2 }, { id: 3 }],
};
编辑

该算法需要能够处理动态数量的节点(示例1),但是,重复只会发生在下一级(感谢您的指出)

示例1(此处少了1个节点):


下面是我建议的从
任务
对象中的任何数组中删除重复元素的解决方案:

constuniq=array=>{
常量映射={};
常量结果=[];
for(设i=0;iconsole.log('重复数据消除:',任务)“algo必须识别它是一个数组”-请看Hello,谢谢你的评论,我知道这样一个函数可以检测它是否是一个数组,但是我不知道如何应用它来获得我想要的结果“我已经检查了其他解决方案,但不符合我问题的标准”-请提供一些链接,以及为什么它不起作用。你能展示一下你迄今为止的尝试,以及你遇到的问题吗?@JanStránský嘿,我对这篇文章进行了编辑,该链接是我访问过的链接之一。一般来说,stackoverflow有很多问题和答案,解决了我的问题的一部分,那就是过滤掉数组中的重复项,但是我需要算法能够动态检查每个节点,因为数据集可能会改变节点的数量,也可能不会改变节点的数量。谢谢您的帮助,我每天都对JS有更好的理解,比如(让i=0;i
我更喜欢
解决方案:
对于(让e的数组){…e…}
(不确定是否值得编辑答案)使用foreach可能更惯用,但我还是不说了,因为香草味的巧克力展示了引擎盖下发生了什么。
task = {
  content: "lorem....",
  customer: [
    { id: 1, name: "hello" },
    { id: 2, name: "sup" },
  ],
  end: "2020-08-13 10:09:48",
  project: [{ id: 1 }, { id: 2 }],
};