Removing Undefined Values from an Object - dialloi659/angular GitHub Wiki
cleanObject Function
The cleanObject function cleans an object by removing properties with undefined values. Specifically, it removes properties that have a value of undefined, null, NaN, "", or " ".
Usage
/**
 * Cleans an object by removing properties with undefined values.
 * Specifically, it removes properties that have a value of undefined, null, NaN, "", or " ".
 *
 * @param obj - The input object to be cleaned.
 * @returns A new object with undefined values removed.
 *
 * @example
 * const obj = {
 *     a: undefined,
 *     b: null,
 *     c: NaN,
 *     d: "",
 *     e: " ",
 *     f: "validValue",
 *     g: 123,
 * };
 * const cleanedObj = cleanObject(obj);
 * console.log(cleanedObj); // Outputs: { f: "validValue", g: 123 }
 */
export const cleanObject = <T extends Record<string, any>>(obj: T): T =>  {
  const result: Partial<T> = {};
  for (const key in obj) {
      if (obj.hasOwnProperty(key)) {
          const value = obj[key];
          if (
              value !== undefined &&
              value !== null &&
              value !== "" &&
              value !== " " &&
              !Number.isNaN(value)
          ) {
              result[key] = value;
          }
      }
  }
  return result as T;
}
Signature
cleanObject<T extends Record<string, any>>(obj: T): T
- obj: The input object to be cleaned.
 
Returns
A new object with undefined values removed.
Examples
const obj = {
    a: undefined,
    b: null,
    c: NaN,
    d: "",
    e: " ",
    f: "validValue",
    g: 123,
};
const cleanedObj = cleanObject(obj);
console.log(cleanedObj); // Outputs: { f: "validValue", g: 123 }
Remarks
- Properties of the input object that have values of 
undefined,null,NaN,"", or" "will be removed from the returned object. - Properties with numeric values (other than NaN) or non-empty string values will be retained.
 - Properties with unsupported values such as nested objects or functions are not cleaned.