简体   繁体   中英

Find all occurrences of each element of an array in another array in Javascript

I have an array here:

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

and another,

b = [1, 2, 5]

I want to find all occurrences of each element of array b in a . ie I want a resultant array like this:

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

I was going through the Lodash docs to find any combination of methods which would give me the result, but haven't managed to do so. Does anyone know how I can get the result array? I prefer to use a very concise solution (ie without too many loops etc), and usually Lodash is best for that, but other solutions are also fine.

You'd just filter the first array based on the second array

 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); 

You can use for..of loops to iterate b check if element of a is equal to current element in 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); 

If you really wanted to use _, you could use 2 _.difference calls.

 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> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM