为了账号安全,请及时绑定邮箱和手机立即绑定

请各位大佬指点!数组循环去掉不同的元素,求指教?

请各位大佬指点!数组循环去掉不同的元素,求指教?

慕的地6264312 2019-09-26 09:11:50
vara1=[{path:'home'},{path:'index'}]vara2=[{path:'home'},{path:'index'},{path:'delpage'}]两个数组循环,删除不同的对象元素期望a2=[{path:'home'},{path:'index'}]
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

vara1=[{path:'home'},{path:'index'}]
vara2=[{path:'home'},{path:'index'},{path:'delpage'}]
//对比数组
functionfun(arr1,arr2){
for(leti=0;ifor(letj=0;j//由于对象不能直接比较,可以先转换成字符串,再对比
if(JSON.stringify(arr2[i])===JSON.stringify(arr1[j])){
arr2.splice(i,1)
}
}
}
returnarr2
}
console.log(fun(a1,a2))
                            
查看完整回答
反对 回复 2019-09-26
?
临摹微笑

TA贡献1982条经验 获得超2个赞

@tenggouwa的解法虽然可行,但是效率不高,为n^2,我对javascript不熟,这里只提供思路,可以先对两个数组分别进行排序,排序算法有很多比n^2效率高的,排序完之后对两个数组遍历一遍即可(复杂度为n),所以两个加起来的复杂度是小于n^2的,尤其是n很大的时候。遍历的策略大致是两个指针分别指向排完序的数组的起始位置,然后比较,如果相等,则结果添加此元素,如果不等,则移动其中排序靠前的指针(也就是解引用后值较小的,如果按照从小到大排序的话),如此遍历即可。代码你可以自己实现,应该不复杂。
                            
查看完整回答
反对 回复 2019-09-26
  • 2 回答
  • 0 关注
  • 281 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号