如何过滤含混合数据类型的文件数组,筛选image类型项
解决混合类型数组的过滤问题
直接通过判断元素类型来适配不同结构的mimetype提取逻辑,就能完成过滤:
const FilteredFiles = AllFiles.filter(item => { let mimetype; // 判断当前元素是新文件数组还是已有文件对象 if (Array.isArray(item)) { // 新文件项:取数组第二个元素的mimetype mimetype = item[1].mimetype; } else { // 已有文件项:直接取对象的mimetype属性 mimetype = item.mimetype; } // 统一判断是否为图片类型 return mimetype.startsWith("image/"); });
代码说明
- 用
Array.isArray()区分数组(新文件)和对象(已有文件)两种结构 - 针对不同结构分别提取对应的
mimetype字段 - 最后统一校验
mimetype是否以image/开头,完成过滤
用你的示例数组测试,过滤后会保留ExistingFile1和包含NewFile2的数组项,符合需求。
内容的提问来源于stack exchange,提问作者volume one
相关产品推荐
相关产品推荐

