首页 > 解决方案 > 带有嵌套代码的 javascript .forEach 循环

问题描述

我有这个代码:

function uploadFiles(event) {
    event.preventDefault();

    files = [...fileElem.files]

    files.forEach(uploadFile)

}

function uploadFile(file, i) {

}

现在,我想将代码添加到files.forEach(uploadFile)

伪代码:files.forEach(
uploadFile(); console.log(file.name); )

我在这里查看:For-each over an array in JavaScript 所以我尝试了:

files.forEach(function(uploadFile) {
    uploadFile();
    console.log(file.name); 
})

files.forEach(function (entry) {            
    console.log(entry.name);
    uploadFile(entry);
})

但我想我不明白这是如何工作的。如何执行函数uploadFile并访问同一代码块中的属性file

标签: javascriptforeach

解决方案


使用此代码:

function uploadFiles(event) 
{
    event.preventDefault();

    files = [...fileElem.files]

    files.forEach(extendedUploadFile)
    clearFileInput(fileElem);
}

function uploadFile(file, i) 
{
 ....
}

function extendedUploadFile(file, i)
{
    console.log(file.name);
    uploadFile(file, i);
}

// reset/clear FILE type inputs
function clearFileInput(ctrl)
{
  try
  {
    ctrl.value = null;
  }
  catch(ex)
  { }
  if (ctrl.value) ctrl.parentNode.replaceChild(ctrl.cloneNode(true), ctrl);
}


推荐阅读