Tengo una matriz de objetos y una función de eliminación que pasa el índice como parámetro pero no elimina el objeto vacío. Los objetos que contienen propiedades se pueden eliminar. ¿Alguien sabe cómo arreglarlo? El código de ejemplo se muestra a continuación.
let array = [ { id: '1', name: 'sam', dateOfBirth: '1998-01-01' }, { id: '2', name: 'chris', dateOfBirth: '1970-01-01' }, { id: '3', name: 'daisy', dateOfBirth: '2000-01-01' }, {} ] // Objects contain properties can be removed but empty object can not be removed. const deleteItem = (index) => { return array.splice(index, 1); };Use Array.filter para filtrar los elementos que no tienen propiedades
let array = [ {id:"1",name:"sam",dateOfBirth:"1998-01-01"}, {id:"2",name:"chris",dateOfBirth:"1970-01-01"}, {id:"3",name:"daisy",dateOfBirth:"2000-01-01"}, {} ] const filtered = array.filter(e => Object.keys(e).length) console.log(filtered) Lo anterior funciona ya que Object.keys devolverá una matriz de las propiedades del objeto. Obtener su propiedad de length obtendrá la cantidad de elementos en la matriz. Si la propiedad de length es 0 , se coacciona a false (consulte: Valores falsos).