提问人:rahman 提问时间:6/29/2023 最后编辑:Alive to die - Anantrahman 更新时间:6/30/2023 访问量:50
如何将 SerializeArray 转换为具有动态道具名称 jquery 的对象
How Convert SerializeArray to Object With Dynamic Prop Name Jquery
问:
如何将序列化数据从DOM转换为Object?
喜欢:
const data = section.serialize();
const object = {data}
我目前的解决方案是:
const array = section.find('select, textarea, input').serializeArray();
var myObject = {};
$.map(array, (item, index) => {
myObject[item.name] = item.value;
});
此代码转换为平面对象,但我对内部数组一无所知,例如:
obj = {
id: 1,
name : "ABC",
Persons:[] ???
}
答:
0赞
sylvain
6/30/2023
#1
要使用 jQuery 将序列化数据从 DOM 转换为对象,您可以使用 serializeArray(),然后可以使用 reduce() 将该数组转换为 JavaScript 对象:
const section = $('#yourSectionId');
const dataArray = section.find('select, textarea, input').serializeArray();
const dataObject = dataArray.reduce(function (obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
作为替代方案,更紧凑的方式:
const section = $('#yourSectionId');
const dataObject = Object.fromEntries(section.find('select, textarea, input').serializeArray().map(({ name, value }) => [name, value]));
下一个:从对象数组中获取值
评论