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

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

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 Report

0

Podrías probarlo con filtro.

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

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