Javascript: filter object by array

I want to filter an array of object by passing array elements.

var filterNumbers = [2, 4];

var obj = [
  {value: 1, lang: 'South'},
  {value: 2, lang: 'North'},
  {value: 3, lang: 'East'},
  {value: 4, lang: 'Test1'},
  {value: 5, lang: 'Test2'},
  {value: 6, lang: 'Test3'},
  ];

let myArray = [];
  for (let i = 0; i < obj.length; i++) {
    if (obj[i].value === filterNumbers[i]) {
        myArray.push(obj[i]);
    }
}

console.log(myArray);

I see my result is showing [], but instead I want something like the below:

[
  {value: 2, lang: 'North'},
  {value: 4, lang: 'Test1'}
];

>Solution :

the complete answer, idem to the comment of Andy Ray

var filterNumbers = [2, 4];

var obj = [
  {value: 1, lang: 'South'},
  {value: 2, lang: 'North'},
  {value: 3, lang: 'East'},
  {value: 4, lang: 'Test1'},
  {value: 5, lang: 'Test2'},
  {value: 6, lang: 'Test3'},
  ];

let myArray = obj.filter(({value})=>filterNumbers.includes(value)) 

console.log(myArray);

Leave a Reply