Skip to content

Instantly share code, notes, and snippets.

@farhad-taran
Created January 30, 2023 18:10
Show Gist options
  • Save farhad-taran/dcf17302480908e1641e7f43f0de8aef to your computer and use it in GitHub Desktop.
Save farhad-taran/dcf17302480908e1641e7f43f0de8aef to your computer and use it in GitHub Desktop.
Creating CSVs from arrays of objects
const makeCsv = (dataObjectsArray, fieldNamesArray) => {
  if (!dataObjectsArray || dataObjectsArray.length == 0) {
    return '';
  }
  const csvLines = []
  const formatField = field => `"${field.replace(/"/g, '""')}",`;
  csvLines.push(fieldNamesArray.map(formatField).join(''));
  dataObjectsArray.forEach(function (dataObj) {
    let line = '';
    fieldNamesArray.forEach(fieldName => {
      const fieldData = dataObj[fieldName] || '';
      line += formatField(fieldData);
    });
    csvLines.push(line);
  });
  return csvLines.join('\r\n');
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment