我有一个上传表单,并且为了添加和删除文件列表中的文件,我创建了一个包含要在一个请求中发送它们的文件的数组。
创建数组
var filelist = [];
for(var i = 0; i < data.files.length; i++){
filelist.push(data.files[i]);
console.log(filelist);
}
控制台中的结果
[File, File, File]
文件包含在数组中,但现在我想在数组中为名称指定文件名以便删除。
所以不是[文件,文件,文件],而是我想举例如[image01.jpg,image02.jpg,image03.jpg]
我已经尝试了
filelist.push(data.files[i].name);
结果
["image01.jpg", "image02.jpg", "image03.jpg"]
但文件没有添加到数组中?请问有人可以帮帮我吗? 我这样做的原因是因为我想尝试从数组中删除文件而不是索引。
从数组中删除文件的代码
var idx = filelist.indexOf(file.name);
filelist.splice(idx,1);
答案 0 :(得分:4)
您可以将文件名设置为密钥:
var filelist = {};
for(var i = 0; i < data.files.length; i++) {
var file = data.files[i];
filelist[file.name] = file;
}
然后使用delete
operator根据文件名删除文件:
var filename = fileToDelete.name;
delete filelist[filename];