栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript数组转换为CSV

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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测试,测试以逗号分隔的方式连接字符串是否更快地将它们推入数组并加入数组,或者先将它们与逗号连接,然后直接使用+ =运算符输入结果字符串。

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645752.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号