如何修改jQuery的.each()方法将表单字段值合并为单个数组对象?
修改方案
你需要先创建一个空对象来整合所有键值对,而不是每次循环都生成新对象推入数组。调整后的代码如下:
// 初始化一个空对象用于整合所有键值 const mergedObject = {}; $('.fields_to_iterate').each((index, element) => { const $elem = $(element); // 将每个输入框的id作为键,值作为属性值存入对象 mergedObject[$elem.attr('id')] = $elem.val(); }); // 把整合后的对象放入数组,此时数组仅包含这一个对象 const myObject = [mergedObject];
如果你的myObject是已经存在的数组,只需清空后再推入整合对象即可:
myObject = []; // 清空原有数组内容 const mergedObject = {}; $('.fields_to_iterate').each((index, element) => { const $elem = $(element); mergedObject[$elem.attr('id')] = $elem.val(); }); myObject.push(mergedObject);
说明
原来的代码每次遍历都会创建一个仅含单个键值对的新对象并推入数组,所以最终数组里是多个独立对象。修改后先通过遍历把所有键值对整合到同一个对象中,再将这个对象推入数组,就能得到你需要的结果。
内容的提问来源于stack exchange,提问作者Luigino
相关产品推荐
相关产品推荐

