[英]javascript .forEach loop with nested code
我有這個代碼:
function uploadFiles(event) {
event.preventDefault();
files = [...fileElem.files]
files.forEach(uploadFile)
}
function uploadFile(file, i) {
}
現在,我想向files.forEach(uploadFile)
添加代碼
偽代碼:files.forEach(
上傳文件(); 控制台.log(文件名); )
我在這里查看: For-each over a array in JavaScript所以我嘗試了:
files.forEach(function(uploadFile) {
uploadFile();
console.log(file.name);
})
files.forEach(function (entry) {
console.log(entry.name);
uploadFile(entry);
})
但我想我不明白這是如何工作的。 如何執行 function uploadFile
並訪問同一代碼塊中file
的屬性?
使用此代碼:
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);
}
我想你想做這樣的事情:
files.forEach( file => {
uploadFile(file);
});
不確定i
對上傳文件的意思,猜測它是一個迭代器:
for(var x = 0; x < files.length){
uploadFile(file[x],x);
}
正如 Andreas 所指出的, Mozilla 的 forEach 文檔足以理解它的工作原理。
function logArrayElements(element, index, array) {
console.log('a[' + index + '] = ' + element)
}
[2, 5, 9].forEach(logArrayElements)
當您遍歷一個數組時,對於每個元素,您將獲得元素、索引和被遍歷的數組 object。 在您的情況下,您不需要為每個元素遍歷數組 object 。 所以你可以忽略它並做這樣的事情:
function uploadFiles(event) {
event.preventDefault();
files = [...fileElem.files]
files.forEach(uploadFile)
}
function uploadFile(file, index) {
console.log(file.name) (Reach the properties of the file)
... (Do the uploading)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.