javascript - 如何使用扩展运算符和映射推送到数组?
问题描述
我需要推送用户在<input name="PostFiles" ref="PostFiles" multiple type="file"/>
元素中选择的新文件以及每个文件的一些元数据。
这就是我想出的:
const PostFiles = this.$refs.PostFiles.files;
this.Form.Files.push(...PostFiles).map(file => {
return [
file, {
name: file.name,
size: file.size,
type: file.type
}
]
})
所以我基本上希望this.Form.Files
数组是这样的:
[
[{File Object},{Metadata Object}],
[{File Object},{Metadata Object}],
[{File Object},{Metadata Object}]
]
当我使用上面的代码时,map()
它不起作用。我只得到File Object
部分。我不能这样使用map()
吗?
解决方案
map 函数返回一个新数组,它不会改变原来的数组。所以你必须分配返回的数组:
this.Form.Files = this.Form.Files.push(...PostFiles).map(file => {
return [
file, {
name: file.name,
size: file.size,
type: file.type
}
]
})
编辑:保留原始项目:
const PostFiles = Array.from(this.$refs.PostFiles.files).map(file => {
return [
file, {
name: file.name,
size: file.size,
type: file.type
}
]
})
this.Form.Files.push(...PostFiles)
推荐阅读
- python-3.x - 将字符或单词移动到新行
- json - 使用 JsonConverter 的 VBA Json Parse 响应
- c# - 创建一个 IObservable
正确返回大量数据(异步?) - c# - 防止不需要的自动完成建议完成将 `IT.` 转换为 `await...`
- swiftui - HealthKit 单一锻炼地点
- c++ - 在 ostream 中检查故障位的速度
- sql - 检查值 A 在 C 列中至少出现 B 次的查询
- variables - Axios 动态参数
- sql - 我第一次使用 Oracle,这段代码似乎适用于其他所有人,但是当我把它放在我的工作表中时,它只是得到了一个错误
- javascript - 如何在 vue js 方法中传递 url 并在 @click 上触发