猿问

最效率获得俩个数组的相同值

letarr1=['a','b','c','d','e']letarr2=['c','d','g','h','a']找到arr1和arr2中相同的值,并在arr2中删除对应的值怎么写才更简单效率,我只能想到套个双层循环,就比如这样
arr1.forEach((val)=>{
arr2.forEach((v,i)=>{
val===v&&arr2.splice(i,1)
})
})
然后现在问题变了arr2=[{'id':'c'},{'id':'d'},{'id':'g'},{'id':'h'},{'id':'a'}]我的只要改一个地方就能继续运行
arr1.forEach((val)=>{
arr2.forEach((v,i)=>{
val===v.id&&arr2.splice(i,1)
})
})
你们代码需要怎么改才能实现原来的目的,改动最少最简单的,我认为是最合理的就采纳了
江户川乱折腾
浏览 400回答 2
2回答

梦里花落0921

letarr1=['a','b','c','d','e']letarr2=['c','d','g','h','a']letres=[]vara=arr2.filter(v=>{if(arr1.indexOf(v)>=0){res.push(v)}returnarr1.indexOf(v)

慕妹3242003

array转dictletarr1=['a','b','c','d','e']letarr2=['c','d','g','h','a']letobj=arr1.reduce((iter,val)=>{iter[val]=truereturniter},{})letresult=arr2.filter(v=>!obj[v])console.log(result)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答