我试图让用户从我们的应用程序下载过滤后的成员列表。 我已经做了一个更复杂的 CSV 字符串,它工作得很好,但由于某种原因我无法让这个工作。
代码是:
function getCSVString(){
return ['nom', 'telèfon', 'email'].join(',') + '\n'
+ filteredMembers.value.map(member => {
return [member.nom, member.telèfon, member.email].join(',') + '\n'
})
}
我尝试了很多变体,其中一些' ' 或其他地方的连接,并已经下载了 42 个测试文件,但我得到的最接近的文件看起来像这样,第一行后面有一个愚蠢的空格,它改变了一切:
我没看到什么???
提前谢谢您!!!
您的问题是
.map
返回 array
。
当您组合
str + array
时,JS 会将数组转换为字符串表示形式,这是一个以逗号分隔的字符串 - 即每行以逗号分隔 - 从而在每行的开头添加一个逗号。
修复是
.join()
由.map
返回的数组不带逗号
let members = [
{ nom:"A", tel:"1", email:"A" },
{ nom:"B", tel:"2", email:"B" },
{ nom:"C", tel:"3", email:"C" }
]
let result = ['nom', 'telèfon', 'email'].join(',') + '\n' +
members.map(member => {
return [member.nom, member.tel, member.email].join(',') + '\n'
}).join("");
console.log(result);