Javascript 将formArray作为一个对象发送
我正在使用我的步进机。当我调用API时,它将数据作为如下对象数组发送:Javascript 将formArray作为一个对象发送,javascript,angular,typescript,Javascript,Angular,Typescript,我正在使用我的步进机。当我调用API时,它将数据作为如下对象数组发送: [ { “产品”:“lifeci”, “性别”:“F”, “出生日期”:“1999-04-23T10:58:53.839Z”, “支付频率”:12, “升华”:“100” }, { “货币”:“美元”, “金额”:“15000”, “期间”:3 } ] 我希望将数据作为一个对象发送,如下所示: { “性别”:“字符串”, “出生日期”:“2021-04-23T11:37:01.738Z”, “期间”:0, “支付频率
[
{
“产品”:“lifeci”,
“性别”:“F”,
“出生日期”:“1999-04-23T10:58:53.839Z”,
“支付频率”:12,
“升华”:“100”
},
{
“货币”:“美元”,
“金额”:“15000”,
“期间”:3
}
]
我希望将数据作为一个对象发送,如下所示:
{
“性别”:“字符串”,
“出生日期”:“2021-04-23T11:37:01.738Z”,
“期间”:0,
“支付频率”:0,
“金额”:0,
“升华”:“字符串”,
“货币”:“字符串”,
“产品”:0
}
这是我的表格:
this.formGroup = this._formBuilder.group({
formArray: this._formBuilder.array([
this._formBuilder.group({
product: ['lifeci', Validators.required],
gender: ['', Validators.required],
birthDate: ['', [Validators.min(18), Validators.max(50)]],
payFrequency: [12],
subLimit: ['100']
}),
this._formBuilder.group({
currency: ['USD', Validators.required],
amount: ['15000', Validators.required],
period: ['', Validators.required],
}),
])
});
onSubmit() {
this.service.calculate(this.formGroup.value).subscribe(
(res:any)=>{
console.log(res);
},
err => {
console.log(err);
}
);
}
服务.ts
export class LifeciService {
readonly API_SERVER = "API_URL";
constructor(private http: HttpClient) { }
calculate(formData) {
return this.http.post(this.API_SERVER + '/Calculate', formData);
}
}
如何实现这一点?您可以使用javascript
reduce
函数进行简单的转换,将数据转换为所需的结构
const initial=[{“产品”:“生活费”,“性别”:“F”,“出生日期”:“1999-04-23T10:58:53.839Z”,“支付频率”:12,“升华”:“100”},{“货币”:“美元”,“金额”:“15000”,“期间”:3});
const reduced=initial.reduce((上一个,下一个)=>({…上一个,…下一个}),{})
console.log(reduced)
您也应该向我们展示api服务。您好!我编辑了我的帖子!谢谢你的回答,我如何在我的服务中实现这一点?我做了类似的事情,但它不起作用:onSubmit(){const initial=[this.formGroup.value];const reduced=initial.reduce((prev,next)=>({…prev,…next}),{})console.log(reduced);this.service.calculate(reduced)。subscribe((res:any)=>{console.log(res);},;}使用const initial=this.formGroup.get('formArray')。值