Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

115
Vistas
Encuentre detalles de usuario por ID en nodos de objetos anidados | javascript

Cómo encontrar el nombre usando id. significa iterar objeto. crear una función const searchName =()=>{} supongamos que si pasa 3 en la función, entonces me gustaría mostrar ... cuál es el nombre del usuario como este

 const data = [{ "service": [ "BUSINESS", "LEGAL", "FINANCE", "ADVERTISEMENT" ], "service1": [ { "id": 1, "name": "a" }, { "id": 2, "name": "b" }, { "id": 3, "name": "c" }, { "id": 4, "name": "d" }, ], "service2": [ { "id": 5, "name": "e" }, { "id": 6, "name": "f" }, { "id": 7, "name": "g" }, { "id": 8, "name": "h" }, ], "service3": [ { "id": 9, "name": "i" }, { "id": 10, "name": "j" }, { "id": 11, "name": "k" }, { "id": 12, "name": "l" }, ], "service4": [ { "id": 13, "name": "m" }, { "id": 14, "name": "n" }, { "id": 15, "name": "o" }, { "id": 16, "name": "p" }, ], } ]

supongamos que el usuario pasa 3 , así que quiero devolver { "id": 3, "name": "c" } así. Estoy tratando de iterar esto y encontrar el nombre del usuario por id, pero no entendí esta iteración, así que necesito su ayuda.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

verifique este código.... Ingrese cualquier número de identificación

 const data = [{ "service": [ "BUSINESS", "LEGAL", "FINANCE", "ADVERTISEMENT" ], "service1": [ { "id": 1, "name": "a" }, { "id": 2, "name": "b" }, { "id": 3, "name": "c" }, { "id": 4, "name": "d" }, ], "service2": [ { "id": 5, "name": "e" }, { "id": 6, "name": "f" }, { "id": 7, "name": "g" }, { "id": 8, "name": "h" }, ], "service3": [ { "id": 9, "name": "i" }, { "id": 10, "name": "j" }, { "id": 11, "name": "k" }, { "id": 12, "name": "l" }, ], "service4": [ { "id": 13, "name": "m" }, { "id": 14, "name": "n" }, { "id": 15, "name": "o" }, { "id": 16, "name": "p" }, ], }] var itemobj = '' const searchName =(val)=>{ console.log('searchname') data.map((item)=>{ let obj = Object.keys(item) obj.map((data)=>{ let inrdata = item[data] inrdata.map((initem)=>{ let lastdata = initem.id===val?itemobj=initem:null }) }) }) } searchName(3) console.log(itemobj)

about 4 years ago · Juan Pablo Isaza Denunciar

0

function searchName(id) { let result = null; for (const [key, value] of Object.entries(data)) { if (key === "service") continue result = value.filter(obj => { return obj.id === id }) if (result) break } return result ? result[0] : null }

Repaso las claves, solo omito la de "servicio" ya que no es relevante. Luego, filtro la matriz "servicio N ", devolverá una matriz de objetos (solo uno si se encuentra, una matriz vacía si no se encuentra).

Si se encuentra, dejamos de iterar.

Luego devolvemos el primer (y lógicamente el único elemento) o nulo si no se encuentra

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar una combinación de flat y find para obtener el usuario por id.

 function searchName(id) { return data .flatMap((item) => Object.values(item)) .flat() .find((user) => user.id === id); } const result = searchName(3); // { id: 3, name: 'c' } | undefined
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda