gpt4 book ai didi

javascript - 数组到 csv 忽略值中的逗号

转载 作者:行者123 更新时间:2023-11-29 21:03:59 26 4
gpt4 key购买 nike

我有一个将数组转换为 csv 文件的函数。它以逗号分隔,但是当数组的一个值中有一个逗号时,它也会在那里分隔。我试图将逗号括在引号中并对其进行转义,但它仍然会破坏 csv。关于如何在逗号上分隔而不是在数组值内分隔的任何想法?

convertArrayOfObjectsToCSV: function(args) {
var result, ctr, keys, columnDelimiter, lineDelimiter, data;

data = args.data || null;
if (data == null || !data.length) {
return null;
}

columnDelimiter = args.columnDelimiter || ',';
lineDelimiter = args.lineDelimiter || '\n';

keys = Object.keys(data[0]);

result = '';
result += keys.join(columnDelimiter);
result += lineDelimiter;

data.forEach(function(item) {
ctr = 0;
keys.forEach(function(key) {
if (ctr > 0) result += columnDelimiter;

result += item[key];
ctr++;
});
result += lineDelimiter;
});

return result;
},
downloadCSV: function(args) {
var data, filename, link, csvArray;

csvArray = ids.map(function(id) {
return {
'id': id.id,
'image': id.image,
'desc': id.desc
};
});
var csv = utilities.convertArrayOfObjectsToCSV({
data: csvArray
});


if (csv == null) return;

filename = args.filename || 'export.csv';

if (!csv.match(/^data:text\/csv/i)) {
csv = 'data:text/csv;charset=utf-8,' + csv;
}
data = encodeURI(csv);

link = document.createElement('a');
link.setAttribute('href', data);
link.setAttribute('download', filename);
link.click();
}
};

这是创建为 csvArray 的数据示例:

[{id:123,
image:image,
desc : "hello here is a comma , I am after the comma"}]

最佳答案

改变你写文本的方式,如下所示

data.forEach(function(item) {
ctr = 0;
keys.forEach(function(key) {
if (ctr > 0) result += columnDelimiter;
result += "\"" + item[key].replace(/"/g, '\\"') + "\"";
ctr++;
});
result += lineDelimiter;
});

只需在引号之间添加文本即可解决此问题。

关于javascript - 数组到 csv 忽略值中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45016408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com