亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

最效率獲得倆個數組的相同值

最效率獲得倆個數組的相同值

江戶川亂折騰 2019-05-24 09:44:20
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)})})你們代碼需要怎么改才能實現原來的目的,改動最少最簡單的,我認為是最合理的就采納了
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

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)<0
})
res//["c","d","a"]
a//["g","h"]
                            
查看完整回答
反對 回復 2019-05-24
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

array轉dict
letarr1=['a','b','c','d','e']
letarr2=['c','d','g','h','a']
letobj=arr1.reduce((iter,val)=>{
iter[val]=true
returniter
},{})
letresult=arr2.filter(v=>!obj[v])
console.log(result)
                            
查看完整回答
反對 回復 2019-05-24
  • 2 回答
  • 0 關注
  • 397 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號