最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Find all occurrences of each element of an array in another array in Javascript - Stack Overflow

programmeradmin6浏览0评论

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. i.e. I want a resultant array like this:

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

I was going through the Lodash docs to find any bination 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 (i.e. without too many loops etc), and usually Lodash is best for that, but other solutions are also fine.

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. i.e. I want a resultant array like this:

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

I was going through the Lodash docs to find any bination 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 (i.e. without too many loops etc), and usually Lodash is best for that, but other solutions are also fine.

Share Improve this question asked Oct 21, 2016 at 23:06 user3033194user3033194 1,8317 gold badges44 silver badges66 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 7

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/lodash/4.16.4/lodash.min.js"></script>

发布评论

评论列表(0)

  1. 暂无评论