2

I'm trying to make a third array out of two arrays. I want to check if array 2 contains array 1 elements.

So Array2 could look like:

["Bol Sales ", "BookStore Amazon Sales", "Nintendo Sales", "XBOX" ]

Array 1:

["Bol", "Amazon","XBOX"]

Array 3 should then be:

["Bol", "Amazon", "XBOX"]

But most of the outcomes are only XBOX (so, array1.val full match array2.val).

I've tried the following:

var array1 = ["Bol", "Amazon", "XBOX"],
  array2 = ["Bol Sales ", "BookStore Amazon Sales", "Nintendo Sales", "XBOX"],
  array3 = [];


array3 = array1.filter(function(store) {
  return array2.includes(store);
});
console.log(array3);

array3 = array1.filter(function(store) {
  return array2.indexOf(store) >= 0;
});
console.log(array3);

var storesToCheck = function(array1, array2) {
  return array1.some(function(value) {
    return array2.indexOf(value) >= 0;
  });
};

console.log(storesToCheck(array1, array2));
mplungjan
  • 155,085
  • 27
  • 166
  • 222
Elvira
  • 1,360
  • 3
  • 20
  • 47
  • Please note the snippet I made for you. It is called a [mcve] - please provide such a thing in the future after some research. – mplungjan Jun 06 '18 at 12:05

1 Answers1

3

You can use includes method in combination with some by passing a callback provided function as argument.

arr2 = ["Bol Sales ", "BookStore Amazon Sales", "Nintendo Sales", "XBOX" ]
arr1 =  ["Bol", "Amazon","XBOX"]

console.log(arr1.filter(a => arr2.some(item => item.includes(a))));
Mihai Alexandru-Ionut
  • 44,345
  • 11
  • 88
  • 115
  • If arr2 = ["Bol Sales ", "BookStore Amazon Sales", "Nintendo Sales", "XBOX" ] and arr1 = ["Bol", "Amazon","XBOX","Sales"] Your code Output is ["Bol", "Amazon","XBOX","Sales"]... So kindly check your logic... – Maths RkBala Jun 06 '18 at 12:07