簡體   English   中英

javascript如何根據另一個對象數組過濾對象數組

[英]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.filterindexOf !== -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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM