JavaScript,如何对FormData数据进行增删改查遍历?
发布于 作者:苏南大叔 来源:程序如此灵动~

接着描述JavaScript
代码中,对FormData
数据类型进行操作的方式和方法。事先说明的是:正常来说,还是使用<form></form>
来构造表单数据比较合适。而不是通过这种FormData
的方式,隐式的构造相关数据。而且,根据目前的测试结果来看,file
类型的数据,是无法剥离原始的html
而存在的。

苏南大叔的程序如此灵动博客,记录苏南大叔和计算机代码的故事。测试环境:谷歌浏览器。
遍历数据forEach
为了查看FormData
内部的数据,先介绍一下遍历数据的方法。
需要注意的是,在回调函数里面,value
在前,name
在后。
添加修改数据.set
和.append
在这里需要特别了解的前提是:这个FormData
实际上是个可重复的字典类型。它的name
可以重复,对应到实际的表单里面,就是对标<input type="checkbox" name=''/>
。
对于同名key
的字典条目的处理,也是.set()
和.append()
的最大区别。
结果上是就是一条数据:username
。

结果上是就是两条数据:skill
。
查看数据.get
/.getAll
由于允许同名条目的存在,实际上在FormData
内部存在着数组。所以,存在着两个查看数据的方法:
输出为:

判断数据是否存在.has
[判断name
]
输出为:

删除数据.delete
这里指的特别说明的是,对于同名的数据,这里.delete
是一视同仁,删除全部数据,并不会特别区别对待。

数据遍历迭代器
也可以对迭代器类型的.keys
、.values
和.entities
进行遍历。但是由于DataForm
没有.size
属性,所以常规的for
循环无法处理了,最好的方法就是.forEach()
。

结束语
总体上来说,这个FormData
类型和字典类型非常类似,区别上就是FormData
允许key
(或者说name
)重复。


