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

137
Vistas
¿Cómo puedo usar el filtro para extraer el valor deseado de los valores de los objetos dobles en la matriz?

Tengo un objeto en una matriz llamada pick y también tengo otro objeto llamado diaryItem.

También quiero extraer solo el objeto cuyo nombre es wormColor del objeto diaryItem.

así que probé mi código pero no funciona

el error dice que v.filter no es una función

¿Cómo puedo arreglar mi código?

 const pick = [ { diaryId: 1, diaryItem: { name: 'instar' } }, { diaryId: 2, diaryItem: { name: 'facebook' } }, { diaryId: 1, diaryItem: { name: 'wormColor' } }, ] const wormcolor = pick.map((v) => v.filter((p) => p.name ==="wormColor"))

respuesta esperada

 wormcolor : [{ diaryId: 2, diaryItem: { name: 'wormColor' } value: "2" }]

o

 wormcolor : { diaryId: 2, diaryItem: { name: 'wormColor' } value: "2" }
about 4 years ago · Santiago Gelvez
3 Respuestas
Responde la pregunta

0

Necesita map() cuando desea transformar una matriz en otra de la misma longitud aplicando alguna función. Eso no es apropiado aquí.

Además, mirando su devolución de llamada filter() , está accediendo a .name directamente, en su lugar desea .diaryItem.name :

 const pick = [ { diaryId: 1, diaryItem: { name: 'instar' } }, { diaryId: 2, diaryItem: { name: 'facebook' } }, { diaryId: 1, diaryItem: { name: 'wormColor' } } ] const wormcolor = pick.filter((p) => p.diaryItem.name ==="wormColor"); console.log(wormcolor);

about 4 years ago · Santiago Gelvez Denunciar

0

Podrías probarlo con filtro.

 var lookingFor=pick.filter(function (el){ return el.diaryItem.name=='wormColor'; })
about 4 years ago · Santiago Gelvez Denunciar

0

Si desea cambiar el objeto que obtiene, primero tendría que filtrar y luego mapear, algo como esto:

 const pick = [ { diaryId: 1, diaryItem: { name: "instar" }, }, { diaryId: 2, diaryItem: { name: "facebook" }, }, { diaryId: 1, diaryItem: { name: "wormColor" }, }, ]; const wormcolor = pick .filter((item) => item.diaryItem.name === "wormColor") .map((filtered) => { return { ...filtered, value: filtered.diaryId + "", }; });

Lo que obtenga de esto debería verse así: [ { diaryId: 1, diaryItem: { name: 'wormColor' }, value: '1' } ] . Si no desea cambiar el objeto original, simplemente omita la parte .map.

about 4 years ago · Santiago Gelvez 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