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

数组循环去掉不同的元素,求指教?怎么回事哈啊?

数组循环去掉不同的元素,求指教?怎么回事哈啊?

30秒到达战场 2019-06-21 17:03:30
vara1=[{path:'home'},{path:'index'}]vara2=[{path:'home'},{path:'index'},{path:'delpage'}]两个数组循环,删除不同的对象元素期望a2=[{path:'home'},{path:'index'}]
查看完整描述

2 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

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-06-21
?
慕运维8079593

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

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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信