比较2个数组与嵌套的for循环

用户1234

我有2个数组:

a = [{name:"test3", input:[{val:3}]}, {name:"ss", input:[{val:84}]},{name:"sss", input:[{val:86}]},{name:"test", input:[{val:6}]}, {name:"some", input:[{val:8}]}]

a2 = [{name: "dd", field:3},{name: "dd", field:6}]

现在,我试图使用`从两个数组中获取唯一值。

filter

    a.forEach(function(i){
 i.input.forEach(function(j){
  a2.filter(function(k){return j.val !== k.field;});
});}) 

然后我想使用: forEach(function(p){p.remove()}); //remove the unique values

所以我将val第一个数组的field值与第二个数组的值进行比较:

预期结果:

[{name:"ss", input:[{val:84}]},{name:"sss", input:[{val:86}]},{name:"some", input:[{val:8}]}]  // these are the ones whose `val` from `a` does not match with the `field` from `a2`

上面的代码什么也没有返回,任何想法都可能丢失?

雪佛兰

根据通过双重过滤器查找第二数组中是否存在具有输入val的元素来过滤第一个数组:

let a = [{name:"test3", input:[{val:3}]}, {name:"ss", input:[{val:84}]},{name:"sss", input:[{val:86}]},{name:"test", input:[{val:6}]}, {name:"some", input:[{val:8}]}]

let a2 = [{name: "dd", field:3},{name: "dd", field:6}]

let results = a.filter(e => {
    return a2.filter(q => q.field === e.input['val']).length < 1;
});

console.log(results)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章