我具有以下功能
generateArrayFromCSV(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),
{}
);
});
};
我输入了以下代码(您需要JSON PARSE this)
generateArrayFromCSV(`"id","longitude","latitude","height","heading","pitch","roll"
"e33ccb1d-bd23-4da7-a006-caa3b998b5a0",139.60705614794117,35.713942413120606,20,0,0,0
"40ddec13-4888-48be-8382-6761b826f2f2",139.60697489329232,35.71356021532803,20,0,0,0
"396c841c-99a2-49ea-928f-dd26'`)
现在,看起来不错,当我将一个csv加载到其中,并在控制台中获取返回值时,它看起来是正确的。
问题是,即使我的对象在控制台中显示为
{"id": ""e33ccb1d-bd23-4da7-a006-caa3b998b5a0"", "longitude": "139.60705614794117", "latitude": "35.713942413120606"}
要实际访问我的对象,我需要执行以下操作
temp1["\"heading\""]
因为实际上到处都有\"key\"
但是我看不到删除它们的好方法
我尝试了
(obj, title, index) => {title = title.replace('\"', ''); return ((obj[title] = values[index]), obj); },
但它只删除了一个\
(因此变成这样)