繁体   English   中英

每次迭代都在forEach中打印出数组值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM