Javascript 如何使用ES6从两个对象数组中删除重复项
我正在尝试从userPermitDataArr中删除重复项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
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));
要通过删除重复项来合并两个数组吗?请编辑您的答案-添加描述到底是什么错误/发生了什么错误。