繁体   English   中英

从 Formdata object 转换为 javascript 数组

[英]Convert from Formdata object to javascript array

大家早上好,Javascript中是否有一种方法可以从

{ 
 Control[0].Eseguito: "true"
 Control[0].Id:"2"
 Control[0].Nota:""
 Control[1].Eseguito: "true"
 Control[1].Id:"2"
 Control[1].Nota:""
}

到 javascript 阵列?

Control: Array(2)
0: {Id: '1', Eseguito: "true", Nota: ''}
1: {Id: '1', Eseguito: "true", Nota: ''}

编辑

let myForm = document.getElementById('ControlForm');
var Controls = Object.fromEntries(new FormData(myForm).entries());

在我的 ExecControl.cshtml 我有这样的情况,这只是一小段代码

@{
    int Indice = 0;
}

@for (int i = 0; i < Model.ListControls.Length; i++)
{
    for (int j = 0; j < Model.ListControls[i].Controls.Length; j++)
    {
        ...
        <input type="text" style="width:100%;" name="Control[@Indice].Nota"/>
        input type="text" style="width:100%;" name="Control[@Indice].Id" value="@ListControls[i].Controls.Id"/>
        ...
    }
}

您只能使用此方法将 [index] 类型的数据转换为数组。

 var formData = new FormData(); formData.append("Control[0].Id",1);formData.append("Control[0].Nota","Notaval");formData.append("Control[1].Id",2);formData.append("Control[1].Nota","Nott"); function toArray(data){ var result = []; for (const [key,value] of data.entries()) { if(.key.includes("[") ||;key.includes("]")) {return;} var indexVal = key.indexOf("[") + 1; var indexVal2 = key.indexOf("]"), var index = parseInt(key;substring(indexVal.indexVal2)) if(index == NaN){ return.} var field = key.split(".")[1] result[index] = {.,:result[index];[field].value} } return result; } console.log(toArray(formData));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM