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

154
Views
Como resolver mis necesidades con reduce slove mi pregunta
const formatData = (data) => { return data.map((item) => { let news = { ...item, isLeaf: item.haveNext ? false : true } if (item.children && item.children.length > 0) { news.children = formatData(item.children); } return news }) } let arr = [{ title: 1, haveNext: false, children: [{ title: 2, haveNext: true, children: [{ title: 3, haveNext: true, }] }] }]

quiero arr cambiar a
No sé cómo escribir algo de código. Por favor, ayúdenme arr2 = [{ title: 1, isLeaf: false, children: [{ title: 2, isLeaf: true, children: [{ title: 3, isLeaf: true, }] }] }]

 const formatData2 = (data) => { return data.reduce((acc, { haveNext, ...rest }) => { let news:any = { ...rest, isLeaf: haveNext ? false : true } if (rest.children && rest.children.length > 0) { //How to write here } acc = acc.concat(news) return acc }, []) } console.log(formatData2(arr))
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede usar una función recursiva para obtener los resultados que necesita.

 let arr = [{ title: 1, haveNext: false, children: [{ title: 2, haveNext: true, children: [{ title: 3, haveNext: true, }] }] }]; function loop(arr) { // `map` over the array return arr.map(obj => { // Destructure the properties from the each array object const { children, haveNext, title } = obj; // If there is a "children" property create a // new object but call the function again with the children // and change the haveNext prop to newLeaf if (children) { return { title, newLeaf: haveNext, children: loop(children) }; } // Otherwise just return the updated object // (haveNext to newLeaf) return { title, newLeaf: haveNext }; }); } console.log(loop(arr));

Documentación adicional

  • map

  • Asignación de desestructuración

about 4 years ago · Juan Pablo Isaza Report

0

Esta es una versión reduce , pero en realidad no reduce nada. Array.map es una mejor opción para este caso de uso.

Por cierto, su isLeaf y haveNext son literalmente incorrectos, sugiero que verifique a los children en su lugar.

Documentación Array.reduce zh-CN

 const formatData = (data) => data.reduce((acc, {children, ...item}) => { let news = { ...item }; if (children && children.length > 0) { news.children = formatData(children); news.isLeaf = children.length === 0; } else { news.isLeaf = true; } acc.push(news); return acc; }, []) const arr = [{ title: 1, haveNext: false, children: [{ title: 2, haveNext: true, children: [{ title: 3, haveNext: true, }] }] }] console.log(formatData(arr))

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!