Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ES6从两个对象数组中删除重复项_Javascript_Arrays_Node.js_Ecmascript 6_Es6 Promise - Fatal编程技术网

Javascript 如何使用ES6从两个对象数组中删除重复项

Javascript 如何使用ES6从两个对象数组中删除重复项,javascript,arrays,node.js,ecmascript-6,es6-promise,Javascript,Arrays,Node.js,Ecmascript 6,Es6 Promise,我正在尝试从userPermitDataArr中删除重复项 deniedModuleArr = [ { moduleName: 'Transaction fee', url: '/transactionfee', moduleClassName: 'TransactionFee' }, { moduleName: 'Refund View', url: '/refundview', moduleClassName: 'RefundView' } ] user

我正在尝试从userPermitDataArr中删除重复项

deniedModuleArr = [ { moduleName: 'Transaction fee',
    url: '/transactionfee',
    moduleClassName: 'TransactionFee' },
  { moduleName: 'Refund View',
    url: '/refundview',
    moduleClassName: 'RefundView' } ]

userPermitDataArr = [ { moduleName: 'Transaction fee',
    url: '/transactionfee',
    moduleClassName: 'TransactionFee' },
  { moduleName: 'Refund View',
    url: '/refundview',
    moduleClassName: 'RefundView' },
  { moduleName: 'Cancellation',
    url: '/cancellation',
    moduleClassName: 'Cancellation' },
  { moduleName: 'Transaction',
    url: '/transaction',
    moduleClassName: 'Transaction' } ]


 [{ moduleName: 'Cancellation',
    url: '/cancellation',
    moduleClassName: 'Cancellation' },
  { moduleName: 'Transaction',
    url: '/transaction',
    moduleClassName: 'Transaction' } ]

根据命名约定&预期结果,您似乎需要从用户许可模块中筛选出被拒绝的模块。你可以试试下面的

首先创建一个
userPermitDataArr
的集合,然后基于上面创建的集合创建
userPermitDataArr

让deniedModuleArr=[{moduleName:'transactionfee',url:'/transactionfee',moduleClassName:'transactionfee'},{moduleName:'Return View',url:'/ReturnView',moduleClassName:'ReturnView'}];
让userPermitDataArr=[{moduleName:'Transaction fee',url:'/transactionfee',moduleClassName:'transactionfee'},{moduleName:'Return View',url:'/ReturnView',moduleClassName:'ReturnView'},{moduleName:'Cancellation',url:'/Cancellation',moduleClassName:'Cancellation'},{moduleName:'Transaction',url:'/Transaction',moduleClassName:'Transaction'}];
让deniedModuleSet=deniedModuleArr.reduce((a,c)=>a.add(c.moduleName),new Set());
userPermitDataArr=userPermitDataArr.filter(v=>!deniedModuleSet.has(v.moduleName));

log(userPermitDataArr);
使用HashSet此方法也可用于检查嵌套结构的对象相等性

const aStr=firstArr.map(o=>JSON.stringify(o));
const bStr=secondArr.map(o=>JSON.stringify(o));
常量集=新集();
集合。添加(…aStr);
set.add(…bStr);
log([…set.values()].map(o=>JSON.parse(o));

要通过删除重复项来合并两个数组吗?请编辑您的答案-添加描述到底是什么错误/发生了什么错误。