myFilter(arr1,arr2) { return arr1.filter((ele) => arr2.filter((x) => x.id === ele.id).length > 0 );}
在 chrome 浏览器下测试可行。
答案里为了简洁,使用了箭头函数。主要思路就是利用 Array 的 filter 函数。
该函数接受一个回掉函数作为参数,就是如何过滤想要的内容,满足条件的返回为true。
它并不要求b里的id都在a里,只要是共有的id都会选中。
如果是b里的id 都在a里的话,可以尝试这个方法。
myFilter: function (arr1, arr2) {
console.log(1)
var ret = [];
arr2.forEach( (ele) => {
let findEle = arr1.find( (x) => x.service_id === ele.service_id);
// 如果在arr1中找到,添加到arr1中
findEle ? ret.push(findEle) : '';
}
);
return ret;
}
这个思路是把b中的每一个id都在a中找一下。