首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Foreach循环使长度大于长度?

Foreach循环使长度大于长度?
EN

Stack Overflow用户
提问于 2018-04-26 09:53:22
回答 1查看 44关注 0票数 0

我有一段时间。

代码语言:javascript
复制
                var files = document.getElementById("filePostInput").files;
            LogData("files length " + files.length); // 1
            var formData = new FormData();
            
            for (var file in files)
            {
                formData.append("file",files[file].data,files[file].name);
                LogData("file name" + files[file].name);
            }

产出:

清华2018年4月26日09:39:47格林尼治时间:档案名称 清华2018年4月26日09:39:47格林尼治时间:文件名未定义 清华2018年4月26日09:39:47格林尼治时间:文件nameTest.txt 清华2018年4月26日09:39:47格林尼治时间:文件长度1

当我调用files.length时,我得到了1。但是,我的foreach循环记录了3个文件的名称。第一个是我放入文件输入的文件的名称,接下来的两个我不知道它们是什么。

有人能向我解释一下这里发生了什么吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-26 09:55:57

使用for (var file of files)而不是for (var file in files)for .. in循环迭代files的所有属性;for .. of循环迭代集合中的项。这样,您也不需要[]表示法:

代码语言:javascript
复制
for (var file of files)
{
    formData.append("file", file.data , file.name);
    LogData("file name" + file.name);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50039993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档