Evitar valores de cadena vacíos en el objeto de solicitud

2022-07-11 23:43:59

Para una determinada solicitud de axios:

            API.post(
              `v${process.env.REACT_APP_API_VERSION}/register/company/`,
              {
                type: values.type,
                dba: values.dba,
                ein: values.ein,
                file_type: values.file_type,
              },

Me gustaría evitar enviar parámetros si no se les asigna un valor (siguen siendo "").

es decir Me gustaría saber la forma más limpia de incluir solo parámetros no vacíos en mi objeto de solicitud. Puedo hacer esto usando una verificación if, pero hacerlo para cada elemento en solicitudes más grandes no tendría sentido. por ejemplo:

            const postData = {
              first_name: values.first_name,
              last_name: values.last_name
            };
            if (values.middle_name !== "") {
              postData.middle_name = values.middle_name;
            }

Gracias

- Omar Hussein

Source
zh
Responder


2
  • Puedes intentar algo como esto:

    Object.keys(values).forEach((key) => {
      if(!values[key]) delete values[key];
    })
    

    Lo que hace básicamente es eliminar cualquier elemento dentro del objeto values que sea falso, lo que incluye cadenas vacías.