簡體   English   中英

在Javascript中查找另一個數組中數組的每個元素的所有出現

[英]Find all occurrences of each element of an array in another array in Javascript

我這里有一個數組:

a = [1, 1, 2, 3, 4, 5, 5, 6, 7, 7]

另一個,

b = [1, 2, 5]

我想找到陣列的每個元素都出現ba 即我想要一個像這樣的結果數組:

result = [1, 1, 2, 5, 5]

我正在瀏覽Lodash文檔 ,找到可以給我結果的任何方法組合,但是沒有設法這樣做。 有誰知道我怎么能得到result數組? 我更喜歡使用一個非常簡潔的解決方案(即沒有太多的循環等),通常Lodash最好,但其他解決方案也很好。

您只需根據第二個數組過濾第一個數組

 var a = [1, 1, 2, 3, 4, 5, 5, 6, 7, 7]; var b = [1, 2, 5]; var result = a.filter( z => b.indexOf(z) !== -1 ); console.log(result); 

您可以使用for..of循環迭代b檢查的元素a等於在當前元素b

 let a = [1, 1, 2, 3, 4, 5, 5, 6, 7, 7]; let b = [1, 2, 5]; let result = []; for (let prop of b) { for (let el of a) { if (el === prop) result = [...result, el] } } console.log(result); 

如果你真的想使用_,你可以使用2個_difference調用。

 var a = [1, 1, 2, 3, 4, 5, 5, 6, 7, 7]; var b = [1, 2, 5]; var result = _.difference(a,_.difference(a,b)); console.log(result); 
 <script src="https://cdn.jsdelivr.net/lodash/4.16.4/lodash.min.js"></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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