Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
¿Cómo se puede recorrer una matriz de objetos y devolver verdadero/falso cuando al menos una de las propiedades del objeto coincide con las propiedades de un objeto de prueba?

tengo una matriz que se ve así

 let arrayExample = [ { "size":"6M", "color":"Blue" } , { "size":"2M", "color":"Yellow" } ]

actualmente, para devolver todos los elementos de un color específico o un tamaño específico, utilizo este enfoque

 var allColors= arrayExample.map(i=>i.color) return [{"color":"Blue"}].some((val)=> allColors.includes(val.color))

mi pregunta es cómo devolver un valor real cada vez que encuentro un elemento con la combinación exacta que deseo

como se cita en https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

Devuelve el valor verdadero si la función de devolución de llamada devuelve un valor verdadero para al menos un elemento de la matriz. De lo contrario, falso.

mi enfoque actual para esto es

 var allColors= arrayExample.map(i=>i.color) var allSizes= arrayExample.map(i=>i.size) return [{"color":"Blue","size":"2M"}].some((val)=> allColors.includes(val.color) && allSizes.includes(val.size)

este enfoque no funciona para mis propósitos, sabiendo que incluso si no hay ningún elemento en mi ejemplo de arrayExample con la combinación [{"color":"Blue","size":"2M"}] , aún devolvería true porque del tamaño de 2M del segundo elemento de mi matriz

aquí hay un Jsfiddle para probar mi situación https://jsfiddle.net/8htjpyb9/1/

Me gustaría agradecerle si llegó hasta aquí y también gracias por cualquier ayuda, espero que esté teniendo un buen día.

* editar -> me gustaría enfatizar que .filter no funciona para mi problema debido al resto del código en el que está incrustada esta situación.

Solo estoy interesado en devolver un valor de verdadero siempre que encuentre la coincidencia exacta.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

  • Usando Array#map , itere sobre la matriz
  • En cada iteración, utilizando Array#some , verifique si alguna de las combinations coincide con el objeto actual.
  • Para hacerlo, puede usar Object#entries y Array#every para verificar una combinación de propiedades que coincidan con el objeto actual.

 const array = [ { id: 1, size: '6M', color: 'Blue' }, { ld: 2, size: '2M', color: 'Yellow' }, { id: 3, size: '6M', color: 'Blue' } ]; const combinations = [ { "color": "Blue", "size": "6M" } ]; const matches = array.map(current => combinations.some(combination => Object.entries(combination).every(([key, value]) => current[key] === value ) ) ); console.log(matches);

about 4 years ago · Juan Pablo Isaza Relatório

0

Si entiendo correctamente, ¿estás buscando esto?

 const getItem = (arr, toFind) => { const {size, color} = toFind; return arr.filter(item => item.color === color && item.size === size).length > 0 }; let arrayExample = [{ "size": "6M", "color": "Blue", "material": "plastic" }, { "size": "2M", "color": "Yellow", "material": "leather" } ] const res = getItem(arrayExample,{"size": "6M","color": "Blue"}) console.log(res)

about 4 years ago · Juan Pablo Isaza Relatório

0

Si desea devolver los objetos, el filter de coincidencia sería un enfoque más fácil. Pase un conjunto de datos y un objeto de prueba a una función y devuelva solo aquellos objetos que tengan los mismos valores de tamaño y color que el objeto de prueba.

 const data=[{id: 1,size:'6M',color:'Blue'},{ld:2,size:'2M',color:'Yellow'},{id:3,size:'6M',color:'Blue'}]; const test = { size: '6M', color: 'Blue' }; function getExact(data, test) { return data.filter(obj => { return ( obj.size === test.size && obj.color === test.color ); }); } console.log(getExact(data, test));

Si solo desea devolver true/false si las propiedades de un objeto de matriz coinciden con las propiedades de un objeto de prueba, some es la mejor opción.

 const data=[{id: 1,size:'6M',color:'Blue'},{ld:2,size:'2M',color:'Yellow'},{id:3,size:'6M',color:'Blue'}]; const test = { size: '6M', color: 'Blue' }; const test2 = { size: '5M', color: 'Green' }; function getExact(data, test) { return data.some(obj => { return ( obj.size === test.size && obj.color === test.color ); }); } console.log(getExact(data, test)); console.log(getExact(data, test2));

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda