Hasta ahora tengo la siguiente función:
export const useClearEmptyAttributes = ( obj: { [s: string]: unknown } | ArrayLike<unknown>, ) => { return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v)); };Elimina un campo vacío "número de teléfono" que estaba vacío, pero no socialLinks (que es una matriz).
¿Cómo puedo modificar mi función para eliminar matrices vacías también, no solo cadenas vacías?
¡Gracias!
dado que está apuntando a cadenas vacías y matrices vacías y ambas tienen una propiedad de length , puede verificar la longitud si es mayor que 0 :
export const useClearEmptyAttributes = ( obj: { [s: string]: unknown } | ArrayLike<unknown>, ) => { return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v.length > 0)); };Esto funcionaría si desea agregar la verificación de matrices vacías además de su verificación actual:
export const useClearEmptyAttributes = ( obj: { [s: string]: unknown } | ArrayLike<unknown>, ) => { return Object.fromEntries(Object.entries(obj).filter(([_, v]) => Array.isArray(v)?v.length:v)); };Pero si desea verificar también los objetos vacíos, etc., puede modificarse aún más.