Trying to filter the object to return only non null values.
Below is excerpt from my code. How do I check for non null values in the array job
in this case?
const name = null, age = '25', job = [null]; const obj = { name, age, job }; const result = Object.fromEntries( Object.entries(obj).filter(([_, value]) => value) ); console.log(result)
Could anyone please help?
I was expecting the result to be
{ "age": "25" }
Advertisement
Answer
First map the array in the entries to keep only truthy values, then filter the entries by whether the entry is truthy and not a 0-length array:
const name = null, age = '25', job = [null]; const obj = { name, age, job }; const result = Object.fromEntries( Object.entries(obj) .map( ([key, value]) => [key, Array.isArray(value) ? value.filter(v => v) : value] ) .filter(([, value]) => value && (!Array.isArray(value) || value.length)) ); console.log(result)