Converts a comma-separated values (CSV) string to a 2D array of objects. The first row of the string is used as the title row.
Array.prototype.indexOf()
to find the first newline character (\n
).Array.prototype.slice()
to remove the first row (title row) and String.prototype.split()
to separate it into values, using the provided delimiter
.String.prototype.split()
to create a string for each row.String.prototype.split()
to separate the values in each row, using the provided delimiter
.Array.prototype.reduce()
to create an object for each row's values, with the keys parsed from the title row.delimiter
, to use a default delimiter of ,
.const CSVToJSON = (data, delimiter = ',') => {
const titles = data.slice(0, data.indexOf('\n')).split(delimiter);
return data
.slice(data.indexOf('\n') + 1)
.split('\n')
.map(v => {
const values = v.split(delimiter);
return titles.reduce(
(obj, title, index) => ((obj[title] = values[index]), obj),
{}
);
});
};
CSVToJSON('col1,col2\na,b\nc,d');
// [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
CSVToJSON('col1;col2\na;b\nc;d', ';');
// [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
JavaScript, String
Converts a comma-separated values (CSV) string to a 2D array.
JavaScript, Array
Converts an array of objects to a comma-separated values (CSV) string that contains only the columns
specified.
JavaScript, String
Converts an hsl()
color string to an object with the values of each color.