Javascript 将HTMLCollection()值和名称转换为JSON

Javascript 将HTMLCollection()值和名称转换为JSON,javascript,json,htmlcollection,Javascript,Json,Htmlcollection,问题: 两个窗体,隐藏在div中,当您按下CoreSponding按钮时显示。输入被解析为JSON并与请求一起发送。 由于不同的原因,我无法使用表单或字段集来包装表单,因此我使用了: form=document.getElementById('formularEins').getElementsByTagName('input') 当我仍然能够使用form.elements(在我意识到IE不支持fieldset上的.elements属性之前)时,我使用它从输入生成JSON: (在本例中,form

问题:

两个窗体,隐藏在div中,当您按下CoreSponding按钮时显示。输入被解析为JSON并与请求一起发送。 由于不同的原因,我无法使用
表单
字段集
来包装表单,因此我使用了:

form=document.getElementById('formularEins').getElementsByTagName('input')

当我仍然能够使用
form.elements
(在我意识到IE不支持fieldset上的.elements属性之前)时,我使用它从输入生成JSON:

(在本例中,
form=document.getElementsByClassName('formOne')[0];

问题:

如何将HTMLCollection及其类似项的输入转换为JSON

我尝试了以下不同版本,但失败了:

   var formToJSON = function formToJSON(form) {
       for (var i = 0; i < form.length; i++) {
       var item = form[i]; 
       data[item.name] = item.value; }
   };
var formToJSON=函数formToJSON(form){
对于(变量i=0;i
必须将数据变量定义为对象。请尝试使用以下formToJSON函数

var formToJSON = function(form) {
  var data = {};
  for (var i = 0; i < form.length; i++) {
    var item = form[i];
    data[item.name] = item.value;
  }
  return data;
}
var formToJSON=function(form){
变量数据={};
对于(变量i=0;i
小提示:
var formToJSON=function(form){…}
function formToJSON(form){…}
(或
formToJSON=form=>{…}
),不要在变量函数赋值中重复函数名。另外,
[].reduce.call()
不是很惯用(但我知道你为什么这么做--
.reduce()
HTMLCollection
)上不存在,但是@msinfo谢谢!我拥有的
formToJSON=form=>{…}
是IE无法使用的,所以我将它改为
var formToJSON=function(form){…}
但这有点过头了。只需注意,您在该类型的赋值中给出的名称被忽略。请使用不同的名称尝试:
var a=function b(c){console.log(c)}
然后
b(“hello”)
将抛出
引用错误:b未定义
。这是一种期望值,但一文不值。另外,很遗憾您不能使用
=>
var formToJSON = function(form) {
  var data = {};
  for (var i = 0; i < form.length; i++) {
    var item = form[i];
    data[item.name] = item.value;
  }
  return data;
}