JavaScript数组转换为CSV

JavaScript数组转换为CSV,第1张

JavaScript数组转换为CSV

引用的答案是错误的。你必须改变

csvContent += index < infoArray.length ? dataString+ "n" : dataString;

csvContent += dataString + "n";

至于为何引用答案是错的(滑稽已被接受!) index,则第二个参数forEach的回调函数,是该指数环,在阵列,它是没有意义的这种比较的大小infoArray,这是所说数组的一项(恰好也是数组)。

编辑
自从我写了这个答案以来,已经过去了六年。许多事情已经改变,包括浏览器。以下是答案的一部分:

开始老化

顺便说一句,引用的代码是次优的。您应该避免重复附加到字符串。您应该改为附加到数组,然后在末尾执行array.join(“ n”)。像这样:

var lineArray = [];data.forEach(function (infoArray, index) {    var line = infoArray.join(",");    lineArray.push(index == 0 ? "data:text/csv;charset=utf-8," + line : line);});var csvContent = lineArray.join("n");

老化部分的末端

(请记住,CSV的大小写与通用字符串串联有所不同,因为对于每个字符串,您还必须添加分隔符。)

无论如何,以上似乎不再是正确的,至少对于Chrome和Firefox来说不是(尽管对于Safari似乎仍然如此)。

为了消除不确定性,我编写了一个jsPerf测试,测试以逗号分隔的方式连接字符串是否更快地将它们推入数组并加入数组,或者先将它们与逗号连接,然后直接使用+ =运算符输入结果字符串。

请点击链接并运行测试,以便我们有足够的数据来谈论事实而不是观点。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5647953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存