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

153
Views
Cómo encontrar nombres por id

¿Cómo encontrar nombres por id? Tengo dos matrices y quiero encontrar nombres por sus id.

 person: [ {id: 1, name: 'abc'}, {id: 2, name: 'xyz'}, {id: 3, name: 'pqr'}, ] data: [ {id: 1, personId: [1,2,3]}, {id: 2, personId: [1,3]}, {id: 3, personId: [1,2]}, ]

Salida esperada :

 personId: [1,2,3] return // abc,xyz,pqr personId: [1,3] return // abc,pqr personId: [1,2] return // abc,xyz

Estoy usando react-native. He intentado esto :

 for (let person of this.state.data) { for (let personName of person['personId']){ let name = this.state.person.find(nme => nme['id'] === personName); alert(name); } }

Cualquier ayuda sería muy apreciada

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puedes usar buscar

 result = [] for (let i=0; i < personId.length; i++) { result.push(person.find(data => data.id === personId[i]).name); }

para poder recuperar objetos en su matriz de personas en función de la identificación.

about 4 years ago · Juan Pablo Isaza Report

0

Supongo que son datos JSON stringificados o un JSON en general. Por lo tanto, primero puede analizarlo en un objeto JS para que le resulte más fácil usar JS. Pero déjame dejarte esa parte a ti. Cambié sus datos a una matriz para poder mostrarle directamente lo que haría si ayuda. Es bueno usar métodos que no alteren los datos originales. Así que utilicé los métodos de matriz slice, forEach y map en este caso. De esta manera, puede crear de forma segura nuevos datos que son una réplica de los datos (var data) pero incluyendo la nueva propiedad 'personNames', que se asigna desde la otra variable (persona).

 const person = [ {id: 1, name: 'abc'}, {id: 2, name: 'xyz'}, {id: 3, name: 'pqr'}, ]; const data = [ {id: 1, personId: [1,2,3]}, {id: 2, personId: [1,3]}, {id: 3, personId: [1,2]}, ]; // not to mutate your original data, just in case const dataWithNames = data.slice(); // console.log(dataWithNames); // modifying new data to include personNames property dataWithNames.forEach( eachData => { // let eachIdP = eachData.personId; // creating new array by mapping person id to names from person data let mappedNames = eachData.personId.map( pID => { // goes to refer person data with same id person.forEach( eachPerson => { if ( eachPerson.id === pID ) { pID = eachPerson.name; } } ); return pID; } ); // console.log(mappedNames); // adding new property 'personNames' and // assign them to respective mappedNames eachData.personNames = mappedNames; } ); // console.log(dataWithNames);

Esto le dará lo siguiente.

 /* [ { id: 1, personId: [ 1, 2, 3 ], personNames: [ 'abc', 'xyz', 'pqr' ] }, { id: 2, personId: [ 1, 3 ], personNames: [ 'abc', 'pqr' ] }, { id: 3, personId: [ 1, 2 ], personNames: [ 'abc', 'xyz' ] } ]*/

Espero que esto ayude.

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!