如何为数组中的对象提供自定义名称?

时间:2015-11-09 20:11:48

标签: javascript arrays

我有一个上传表单,并且为了添加和删除文件列表中的文件,我创建了一个包含要在一个请求中发送它们的文件的数组。

创建数组

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);

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];