需求:let lines=[{name:'网络1',ip:"36-10"},{name:'网络2',ip:'36-11'},{name:'网络3',ip:'36-12'}];
let canChoose=[{name:'网络2',ip:'36-10'},{name:'网络2',ip:'36-11'},{name:'网络2',ip:'36-12'}];
对上述的canChoose进行筛选,筛选出lines里面名字相同,但是ip不同的对象
方法如下:(主要想记录forEach使用try catch跳出循环这一个方法)
let loadData=[];
canChoose.forEach((item)=>{
let can=true;
try{
lines.forEach((line)=>{
if(item.name==line.name&&item.ip==line.ip){
throw 'jump';
}
})
}catch(e){
console.log(`进入了false`);
can=false;
}
console.log(`can值为:${can}`);
if(can){
loadData.push(item);
}
})
有一些零星的想法,比如set,map,filter等来实现,暂时没有细细思考,有更好想法的欢迎一起讨论。