datos = { boxNoTo: 1, boxNoFrom: 1, tamaño: 'M', }
matriz = [{ tamaño: 'M', },{ tamaño: 'M', },{ tamaño: 'S,M,L,XS', boxNoTo: 1, boxNoFrom: 1, país: 'CA', nombre: 'José'}]
lo que hice es asi
const INDEX = array.findIndex((x) => { if (x.size.split(',').length > 0) { return ( x.size.split(',').filter((y) => y === data['size'])[0] === data['size'] && x.boxNoFrom === data['boxNoFrom'] && x.boxNoTo === data.boxNoTo ); } else { return ( x.size === data['size'] && x.boxNoFrom === data['boxNoFrom'] && x.boxNoTo === data.boxNoTo ); } });Lo que estoy tratando de hacer es obtener el índice de
{ size: 'S,M,L,XS', boxNoTo: 1, boxNoFrom: 1, country: 'CA', name: 'Josh' }Podrías intentar algo como esto:
const data = { boxNoTo: 1, boxNoFrom: 1, size: 'M', }; const array = [{ size: 'M', },{ size: 'M', },{ size: 'S,M,L,XS', boxNoTo: 1, boxNoFrom: 1, country: 'CA', name: 'Josh' }]; const { size, ...rest } = data; const index = array.findIndex(item => item.size.split(',').includes(size) && Object.keys(rest).every(key => item[key] === rest[key]) ); console.log(index);