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

160
Views
Eliminar valores vacíos de la matriz de objetos solo si el valor está vacío en todos los objetos

Estoy tratando de eliminar las cadenas vacías en mi matriz.

Esta es mi matriz:

 let array = [{name:'John',age:'18',address:''},{name:'George',age:'',address:''},{name:'Kevin',age:'25',address:''}]

Me gustaría eliminar los valores de cadena vacíos SOLAMENTE si está vacío en todos los objetos.

resultado deseado:

 [{name:'John',age:'18'},{name:'George',age:''},{name:'Kevin',age:'25'}]

Esto es lo que hice, pero elimina TODOS los valores de cadena vacíos:

 for (let i = 0; i < array.length; i++) { array[i] = Object.fromEntries(Object.entries(array[i]).filter(([_, v]) => v != '')); }

Gracias por adelantado ,

about 4 years ago · Santiago Gelvez
3 answers
Answer question

0

Si no le importa mutar el objeto array original. Aquí hay una solución que utiliza algunas funciones de matriz.

 let array = [ { name: 'John', age: '18', address: '' }, { name: 'George', age: '', address: '' }, { name: 'Kevin', age: '25', address: '' } ] Object.keys(array[0]) .filter(k => array.every(obj => !obj[k])) .forEach(k => array.forEach(obj => delete obj[k])); console.log(array);

about 4 years ago · Santiago Gelvez Report

0

Puedes resolver este problema con un método de filtro.

  • obtener todas las entradas que se escanearán en la matriz;
  • para cada entrada, filtre la matriz con ella; si la matriz de salida está vacía, puede eliminar este valor en la matriz original

 let array = [{name:'John',age:'18',address:''},{name:'George',age:'',address:''},{name:'Kevin',age:'25',address:''}] const entries = Object.keys(array[0]) entries.forEach(e => { if(array.filter(i => i[e]).length === 0) { array = array.map(i => {delete i[e]; return i}) } }) console.log(array)

about 4 years ago · Santiago Gelvez Report

0

Si no desea mutar la matriz original:

 let array = [{name:'John',age:'18',address:''},{name:'George',age:'',address:''},{name:'Kevin',age:'25',address:''}] let result; Object.keys(array[0]) .forEach(key => { if(array.every(e => e[key] === '')) result = array.map(({[key]:_,...rest}) => ({...rest})) }) console.log(result)

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!