Menu

gitpiper

compactObject javascript Code Snippet in 2024

objectarrayrecursionadvanced

Last Updated: 11 March 2024

Deeply removes all falsy values from an object or array.

  • Use recursion.
  • Initialize the iterable data, using Array.isArray(), Array.prototype.filter() and Boolean for arrays in order to avoid sparse arrays.
  • Use Object.keys() and Array.prototype.reduce() to iterate over each key with an appropriate initial value.
  • Use Boolean to determine the truthiness of each key's value and add it to the accumulator if it's truthy.
  • Use typeof to determine if a given value is an object and call the function again to deeply compact it.
const compactObject = val => { const data = Array.isArray(val) ? val.filter(Boolean) : val; return Object.keys(data).reduce( (acc, key) => { const value = data[key]; if (Boolean(value)) acc[key] = typeof value === 'object' ? compactObject(value) : value; return acc; }, Array.isArray(val) ? [] : {} ); };
const obj = { a: null, b: false, c: true, d: 0, e: 1, f: '', g: 'a', h: [null, false, '', true, 1, 'a'], i: { j: 0, k: false, l: 'a' } }; compactObject(obj); // { c: true, e: 1, g: 'a', h: [ true, 1, 'a' ], i: { l: 'a' } }

javascript snippet similar to compactObject For You in March 2024

Subscribe to our Newsletter

Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️

© 2024 GitPiper. All rights reserved

Rackpiper Technology Inc

Company

About UsBlogContact

Subscribe to our Newsletter

Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️