Es6之判斷b數(shù)組對(duì)象有沒(méi)有跟a數(shù)組對(duì)象相同的id,有的話就過(guò)濾掉

如下兩個(gè)[數(shù)組]對(duì)象a和b


let a=[{id:1,value:'this'},{id:2,value:'is'}]
let b=[{id:1,value:'hello'},{id:3,value:'world'}]

filter() 方法創(chuàng)建一個(gè)新的數(shù)組,新數(shù)組中的元素是通過(guò)檢查指定數(shù)組中符合條件的所有元素。

some() 方法用于檢測(cè)數(shù)組中的元素是否滿足指定條件(函數(shù)提供)。

includes() 方法用來(lái)判斷一個(gè)數(shù)組是否包含一個(gè)指定的值,如果是返回 true,否則false.也可以匹配字符串。

indexOf() 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。

ES6的Set 和 Map

方法  描述
add         添加某個(gè)值,返回Set對(duì)象本身。
clear   刪除所有的鍵/值對(duì),沒(méi)有返回值。
delete  刪除某個(gè)鍵,返回true。如果刪除失敗,返回false。
forEach 對(duì)每個(gè)元素執(zhí)行指定操作。
has         返回一個(gè)布爾值,表示某個(gè)鍵是否在當(dāng)前 Set 對(duì)象之中。

方法1、使用filter() , some()

let newList = b.filter(item => !a.some(x => x.id === item.id ))
// newList: [{id:3,value:"world"}]

方法2、使用filter(),includes()

let s = a.map(x => x.id)
let newList = b.filter(item => !s.includes(item.id))
// newList: [{id:3,value:"world"}]

方法3、使用filter(), indexOf()

let s = a.map(x => x.id)
let newList = b.filter(item => s.indexOf(item.id) === -1)
// newList: [{id:3,value:"world"}]

方法4、使用filter(), Set(),map()

const s = new Set(a.map(x => x.id))
const newList1 = b.filter(x => !s.delete(x.id))
const newList2 = a.filter(x => s.has(x.id))
// newList1: [{id:3,value:"world"}]
// newList2: [{id:2,value:"is"}]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容