[英]Print out array value inside forEach with each iteration
我正在使用jsZip将多个文件保存到zip文件中并下载。 我不知道如何从urls数组中输出该迭代的数组名称。
每个urls数组都是应该放在var filename = "";
内部的var filename = "";
,只是找不到打印出每个数组名称的方法。
var zip = new JSZip();
var count = 0;
var urls = [
"FirstFile.pdf",
"SecondFile.pdf",
];
urls.forEach(function(url)
{
//if iteration #1, then echo firstFile.pdf below,
//if iteration #2 echo SecondFile.pdf below so it saves the files inside the zip.
var filename = "output urls array here as name";
JSZipUtils.getBinaryContent(url, function (err, data) {
if(err) {
throw err; // or handle the error
}
zip.file('./temp/' + filename, data, {binary:true});
count++;
if (count == urls.length)
{
zip.generateAsync({type:'blob'}).then(function(content)
{
$( ".download" ).click(function() {
saveAs(content, 'FileZip.zip');
});
});
}
});
});
urls.forEach(function(url)
{
//if iteration #1, then echo firstFile.pdf below,
//if iteration #2 echo SecondFile.pdf below so it saves the files inside the zip.
var filename = url;
});
文件名存储在传递给foreach
的匿名函数的url
参数中。
因此,要在任何迭代中访问文件名,只需使用url
var filename = url;
实际上,您实际上并不需要第二个名为filename的变量,只需将后面的行修改为
zip.file('./temp/' + url, data, {binary:true});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.