Remove Line Breaks

by jacobwsmith

JavaScript

// Remove line breaks from object, array, string
function removeLineBreaks(entity) {
  const loopOver = (entity) => {
    // String
    if (typeof entity === 'string') {
      return entity.replace(/\n/ig, '').trim();
    }
    // Array
    if (Array.isArray(entity)) {
      return entity.map(item => loopOver(item));
    }
    // Object
    if (typeof entity === 'object') {
      return Object.entries(entity).reduce((acc, [key, value]) => {
        acc[key] = loopOver(value);
        return acc;
      }, {});
    }
    return entity;
  }
  return loopOver(entity);
}

/* {
  const test1 = `foo

  bar`;
  console.log('test1: ', test1);
  console.log('removeLineBreaks: ', removeLineBreaks(test1));
}
{
  const test2 = [`foo

  bar`];
  console.log('test2: ', test2);
  console.log('removeLineBreaks: ', removeLineBreaks(test2));
}
{
  const test3 = {
    name: `foo

  bar`
  };
  console.log('test3: ', test3);
  console.log('removeLineBreaks: ', removeLineBreaks(test3));
} */
{
  const test4 = [{
    name: `foo

  bar`, enabled: false
  }];
  console.log('test4: ', test4);
  console.log('removeLineBreaks: ', removeLineBreaks(test4));
}