如何将Javascript属性列表转换为对象列表

如何将Javascript属性列表转换为对象列表,javascript,Javascript,我有一个这样的财产清单 [{"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}, {"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}] [{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"}, {"ID":"0","Day":"","Time":"","Ty

我有一个这样的财产清单

[{"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"},
 {"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}]
[{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"},
{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"}]
我想把它们转换成这样的东西

[{"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"},
 {"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}]
[{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"},
{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"}]

这是我几乎每次将表单转换为json并将其提交给复杂类型的控制器时都会遇到的一个问题。

您可以检查一个对象是否包含键
ID
,并使用以下所有对象构建一个新对象

var data=[{ID:“0”},{Day::},{Time::},{Type:“Both”},{Status:“false”},{ID:“0”},{Day:},{Time::},{Type:“Both”},{Status:“false”},
结果=数据。减少(函数(r,o){
if('ID'在o中){
r、 push(Object.assign({},o));
}否则{
赋值(r[r.length-1],o);
}
返回r;
}, []);
控制台日志(结果)

.as控制台包装{max height:100%!important;top:0;}
这是一个奇怪的输入

下面我假设总有一个ID,它是第一个。因为该数据结构无法拆分属性

var a=[{“ID”:“0”},{“Day”:“},{“Time”:“},{”Type:“Both”},{“Status”:“false”},
{“ID”:“0”},{“Day”:“},{“Time”:“},{“Type”:“Both”},{“Status”:“false”}];
变量
ret=[],
c=零;
a、 forEach((r)=>{
if(r.ID){c={};ret.push(c);}
设k=Object.keys(r)[0];
c[k]=r[k];
});

控制台日志(ret)如何将表单转换为json?我认为不能假设实际数据总是如此整洁有序,对吗?会不会丢失钥匙,或者有时会更改订单?