
将逗号分隔值 (CSV) 字符串转换为二维对象数组。字符串的第一行用作标题行。
用Array.prototype.indexOf()查找第一个换行符 ( \n)。
用Array.prototype.slice()删除第一行(标题行)并将String.prototype.split()其分隔为值,使用提供的delimiter.
用String.prototype.split()为每一行创建一个字符串。
用String.prototype.split()提供的 . 分隔每行中的值。
用Array.prototype.reduce()为每一行的值创建一个对象,键从标题行解析。
省略第二个参数 ,delimiter使用 , 默认分隔符。
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),
{}
);
});
};
更多内容请访问:https://www.icoderoad.com