[英]javascript how to filter an object array based on another object array
這是示例,請提供等效的javascript代碼幫助
array A = [{id: 1, name:'cat'},{id:2, name:'dog'},{id:3, name:'tiger'}];
array B = [{name:'cat'},{name:'dog'}];
結果
expected = [{id: 1, name:'cat'},{id:2, name:'dog'}];
需要根據陣列B中可用的名稱過濾陣列A
與SQL相似,其中name在('cat','dog')
。
試圖使用array.filter
和indexOf !== -1
但是沒有得到預期的結果。
隨着數組變大,構建查找對象可能會更好,但是使用Array.prototype.filter()
和Array.prototype.some()
的簡單方法可能如下所示:
const a = [{id: 1, name:'cat'}, {id:2, name:'dog'}, {id:3, name:'tiger'}]; const b = [{name:'cat'}, {name:'dog'}]; const result = a.filter(x => b.some(y => x.name === y.name)); console.log(result);
const a = [{id: 1, name:'cat'}, {id:2, name:'dog'}, {id:3, name:'tiger'}]; const b = [{name:'cat'}, {name:'dog'}]; var res = a.filter((per)=>b.find((x)=>per.name===x.name)) console.log(res)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.