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

123
Visualizações
JavaScript ES6+ compara campos en matrices de objetos

Haciendo girar mis ruedas aquí. Parece simple conceptualmente, pero JS está tratando de matarme.

Dos matrices de objetos:

 let allProfileUsers = [ { id: "0b4cd920-31da-11ec-a31c-cd844bfb73be", auth_user_id: "fea98060-31ac-11ec-81f6-9b65b19a8154", active: true }, { id: "0b4f9840-31da-11ec-a31c-cd844bfb73be", auth_user_id: "fea73670-31ac-11ec-81f6-9b65b19a8154", active: true }, { id: "0b51e230-31da-11ec-a31c-cd844bfb73be", auth_user_id: "fea98060-31ac-11ec-81f6-9b65b19a8154", active: true } ]; let allAuthUsers = [ { id: "fea4c570-31ac-11ec-81f6-9b65b19a8154", username: "user1", active: true, }, { id: "fea73670-31ac-11ec-81f6-9b65b19a8154", username: "user2", active: true, }, { id: "fea98060-31ac-11ec-81f6-9b65b19a8154", username: "user3", active: true, } ];

Necesito comparar el campo "id" en los objetos de la primera matriz con el campo "auth_user_id" en el segundo conjunto de matrices. Básicamente, todos los usuarios de la matriz uno deben existir en la matriz dos, según la coincidencia de esos dos campos.

Esto no funciona (no es abreviatura, por lo que es fácil de depurar):

 let allMatched = allAuthUsers.every(x => { return allProfileUsers.some(pu => { return x.id === pu.auth_user_id; }); });

...devuelve falso;

Por supuesto, podría recorrer manualmente cada valor y compararlos. No quiero eso a menos que no haya otra manera.

Tengo que pensar que JS es capaz de una frase más elegante con flechas. De hecho, frustrantemente, sé que he hecho esto antes, pero parece que no puedo hacer que suceda hoy.

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

0

Amigo, siento que la respuesta está en tu pregunta. Primero debe recorrer la primera matriz (allProfileUsers) y luego verificar si existe en la segunda (allAuthUsers).

 let allMatched = allProfileUsers.every(pu => { return allAuthUsers.some(x => { return x.id === pu.auth_user_id; }); });
about 4 years ago · Juan Pablo Isaza Relatório

0

Pruebe algo como a continuación. Procese uno de los valores de matriz para Set y utilícelo en otra matriz every método.

 let allProfileUsers = [ { id: "0b4cd920-31da-11ec-a31c-cd844bfb73be", auth_user_id: "fea98060-31ac-11ec-81f6-9b65b19a8154", active: true, }, { id: "0b4f9840-31da-11ec-a31c-cd844bfb73be", auth_user_id: "fea73670-31ac-11ec-81f6-9b65b19a8154", active: true, }, { id: "0b51e230-31da-11ec-a31c-cd844bfb73be", auth_user_id: "fea98060-31ac-11ec-81f6-9b65b19a8154", active: true, }, ]; let allAuthUsers = [ { id: "fea4c570-31ac-11ec-81f6-9b65b19a8154", username: "user1", active: true, }, { id: "fea73670-31ac-11ec-81f6-9b65b19a8154", username: "user2", active: true, }, { id: "fea98060-31ac-11ec-81f6-9b65b19a8154", username: "user3", active: true, }, ]; const auth = new Set(allAuthUsers.map(({ id }) => id)); const isExist = allProfileUsers.every(({ auth_user_id }) => auth.has(auth_user_id) ); console.log(isExist)

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