• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

197
Views
Recepción de error al usar Array.reduce en matriz

Estoy tratando de llamar a esta función deepFilter en una matriz con esta estructura, pero recibo este error en la consola: TypeError: Cannot read properties of undefined (reading 'reduce') y no puedo entender por qué. Estoy seguro de que es algo simple, pero me estoy quedando en blanco.

¿Alguien me puede apuntar en la dirección correcta?

 const items = [ { "name":"Name1", "id":58, "sites":[ { "id":106, "name": "Name11", "items":[ { "name":"01", }, { "name":"02", }, ] } ] }, { "name":"Name2", "id":47, "sites":[ { "name":"Name22", "id":106, "items":[ { "name":"03", }, { "name":"04", }, ] } ] } ]; const deepFilter = (items, value) => items.reduce((arr, cur) => { if (cur.name.includes(value)) arr.push(cur); else if (cur.hasOwnProperty('sites')) { const subItems = deepFilter(cur.subitems, value); if (subItems.length) { cur.subitems = subItems; arr.push(cur); } } else if (cur.hasOwnProperty('items')) { const subSubItems = deepFilter(cur.subsubitems, value); if (subSubItems.length) { cur.subsubitems = subSubItems; arr.push(cur); } } return arr; }, []); console.log(deepFilter(items, '02'));
about 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Porque su valor en cur.subitems no es una matriz.

puede arreglarlo fácilmente agregando && cur.subitems como este:

 else if (cur.hasOwnProperty('sites') && cur.subitems) {

está utilizando recursividad en su función, por lo que debe verificar los valores en consecuencia.

about 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error