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

87
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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