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

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

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 Report

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