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

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

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 Report

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 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!