Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

90
Vistas
Cómo en JS comparar desde una matriz de objetos de todos los resultados 2 claves son iguales a otras 2 variables

Estoy tratando de entender cómo obtener de una matriz de objetos 2 claves específicas y compararlas con otros 2 valores para una declaración booleana.

Lo que debo lograr es que para todos los resultados de una matriz de objetos, debo verificar si ownerId de propietario o el tipo de ownerType son iguales al ejemplo this.ownerId o this.ownerType .

Para dar un ejemplo, tengo un resultado Obj como

 const results = [ { ownerId: '1' ownerType: SOME_TYPE, id: 1 ... <other key_values> ... }, { ownerId: '1' ownerType: SOME_TYPE, id: 2 ... <other key_values> ... }, ... more ... ];

De los resultados, tengo que extraer todos los ownerId de propietario y ownerType y verificar si todos son iguales a otro valor como ejemplo

 (ownerType === 'USER' && ownerId === userId) || (ownerType === 'PARTICIPANT' && ownerId === participantId)

Entonces eso significa que all ownerType === 'USER' && all ownerId === to this userId son verdaderos.

como todos los ownerId de propietario en mis ejemplos son 1 y suponemos 'USUARIO' como un tipo, entonces eso es cierto.

pero

Si el resultado no tiene el mismo ownerId de propietario, es falso.

No estoy seguro de qué tipo de función necesito escribir para ello.

Si hay algún comentario, intentaré explicar mejor el problema.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Simplemente recorra todos los elementos y verifíquelos 1 por 1, cuando encuentre un elemento que no pase, configure el resultado booleano en falso y detenga el ciclo. Cuando pasa por todos los elementos sin establecer el booleano en falso, todo pasó.

 let resultBoolean = true; const userId = '5'; for (let i = 0; i < results.length; i++) { //loop through all the array items if (results[i].ownerId !== userId || results[i].ownerType !== "USER") { //check if this item doesn't have the specified requirements resultBoolean = false; //if it doesn't you know that not all items have the correct ownerId & ownerType break; //no need to continue looking because we already know its false } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si entiendo correctamente, es posible que desee utilizar el método de filter aquí

 const concernedUsers = results.filter((user) => { // Fail if there's no ownerType or userId if (!user.ownerType || !user.userId) return false; // Check for USER/PARTICIPANT type and userId/ownerId return ['USER', 'PARTICIPANT'].indexOf(user.ownerType) > -1 && ownerID === user.userId; }); concernedUsers.map((user) => { /*do something*/ });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda