Home > Back-end >  Check if some object property exist in array of string typescript
Check if some object property exist in array of string typescript

Time:12-06

I have some array like this

const array1= ['A', 'B', 'C', 'D'];

const array2= [
{category: 'photos', code: 'A', fileName: '1664725062718.jpg', size: 120306},
{category: 'photos', code: 'F', fileName: '1664725062718.jpg', size: 120306},
{category: 'photos', code: 'K', fileName: '1664725062718.jpg', size: 120306},
];

I need some function that will check if any array member form array1 exist in code property of array2 and return true or false?

Something like this, of course this is just not working example?

array1.some(value => array2.includes(value))

CodePudding user response:

I think a clean way is to do the "opposite" and use some on array2, destructuring code from each object, and then checking if the code is in the first array.

const array1= ['A', 'B', 'C', 'D'];

const array2= [
{category: 'photos', code: 'A', fileName: '1664725062718.jpg', size: 120306},
{category: 'photos', code: 'F', fileName: '1664725062718.jpg', size: 120306},
{category: 'photos', code: 'K', fileName: '1664725062718.jpg', size: 120306},
{category: 'photos', code: null, fileName: '1664725062718.jpg', size: 120306},
];

// short-circuiting makes it shorter:
// console.log(array2.some(({ code }) => code && array1.includes(code)));
console.log(array2.some(({ code }) => code ? array1.includes(code) : false));

  • Related