Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

234
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!