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

97
Views
Quiero eliminar objetos que no tienen una matriz específica
console.log(value) { List: [ { id: 1 title: 'hi', content: [ { id: 1, functionId: 11, } ] } { id: 2, title: 'minsu', content: [] } ] }

Quiero eliminar el objeto si no hay una matriz de contenido.

Estoy creando una variable llamada control y emitiéndola usando la función de mapa interna. Si los objetos sin matriz de contenido deben eliminarse aplicando una condición de filtro, no sé cómo hacerlo.

 let control: any[any] = [ value.map((value: any) => { return { id: value?.id, title: value?.title, content: value?.content[0].functionId } }) ]

Pero ahora, cuando hago console.log(control), ocurre un error porque el segundo objeto no tiene contenido.

Quiero eliminar el segundo objeto sin contenido e imprimirlo así.

 console.log(control) [ id: 1, title: 'hi', functionId: 11 ]
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Primero filter los elementos con una matriz de contenido de longitud 0 o la matriz de contenido no existe y luego map para transformarla

 const List = [ { id: 1, title: 'hi', content: [ { id: 1, functionId: 11, } ] }, { id: 2, title: 'minsu', content: [] } ] const control = List .filter(({content}) => content?.length) .map(({id,title,content:[{functionId}]}) => ({id,title,functionId})) console.log(control)

about 4 years ago · Juan Pablo Isaza Report

0

Filtre la lista de origen de la manera que necesita y vuelva a aplicar la lista filtrada como nuevo valor

 const sourceObject = { list: [ { id: 1, title: 'hi', content: [ { id: 1, functionId: 11, } ] }, { id: 2, title: 'minsu', content: [] } ] }; const filteredList = sourceObject.list.filter(element => ( typeof(element.content) === 'object' && element.content.length > 0 )); sourceObject.list = filteredList; console.log(sourceObject);

about 4 years ago · Juan Pablo Isaza Report

0

Usualmente uso reduce para resolver problemas como este

 const items = [ { id: 1, title: 'hi', content: [ { id: 1, functionId: 11, } ] }, { id: 2, title: 'minsu', content: [] } ]; const result = items.reduce((rs, item) => { const functionId = item?.content?.[0]?.functionId; if (functionId) { rs.push({ id: item.id, title: item.title, functionId }) } return rs; }, []) console.log(result)

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!