如下:
let all = [
{a: 11, b: 88},
{a: 3, b: 77},
{a: 6, b: 55},
];
let f = [
{a: 3},
{a: 6},
];
let newA = all.filter(item => {
//怎么实现?
})
筛选出新数组
let newA = [
{a: 3, b: 77},
{a: 6, b: 55},
];
第一种方法:
let newA = all.filter(item=>{
return f.some(v=>v.a===item.a);
})
some方法
array1.some(callbackfn[, thisArg])
对数组array1中的每个元素调用回调函数callbackfn,当回调函数返回true或者遍历完所有数组后,some方法终止。可选参数thisArg可以替换回调函数中的this对象
filter方法
array1.filter(callbackfn[, thisArg])
对数组array1中的每个元素调用回调函数callbackfn方法,该方法会返回一个在回调函数中返回true的元素的新的集合。可选参数thisArg可以替换回调函数中的this对象
两者的区别
some方法返回的是boolean值,可用于检察数组中是否有某对象
filter方法返回的是一个新数组,可用于过滤数组中的对象
第二种方法:
let list = f.map(item=>{
return item.a;
})
let newA = all.filter(item=>{
return list.includes(item.a);
})
…
欢迎大家进行补充