compare an array and object to see if item exists

Tags:



I have the following: An array

const myArray = ['john', 'frank', 'paul'];

then I have an array of objects

const myObjectArray = [
    {name: 'nery', age: 34, present: true},
    {name: 'john', age: 15, present: false},
    etc
]

How can I check if myArray value is found in the myObjectArray? I thought about looping through myArray and then in each iteration looping through myObjectArray to see if it is present. However this seems so 2001.

Any ideas?

Answer

if you want to check if an item from first array is in the name of second array use some to return a boolean

const myArray = ["john", "frank", "paul"];

const myObjectArray = [
  { name: "nery", age: 34, present: true },
  { name: "john", age: 15, present: false },
];
res = myObjectArray.some((o) => myArray.includes(o.name));
console.log(res);

If you want to return the object that has same name from first array use filter

const myArray = ["john", "frank", "paul"];

const myObjectArray = [
  { name: "nery", age: 34, present: true },
  { name: "john", age: 15, present: false },
];
res = myObjectArray.filter((o) => myArray.includes(o.name));
console.log(res);


Source: stackoverflow