我有一些html对象,如:
<input id="myfield1" class="fields_to_iterate">
<input id="myfield2" class="fields_to_iterate">
<input id="myfield3" class="fields_to_iterate">
<input id="myfield4" class="fields_to_iterate">
<input id="myfield5" class="fields_to_iterate">
如果我用javascript写的话
$('.fields_to_iterate').each( (index, element) => {
myObject.push( { [$(element).attr('id')] : $(element).val() } );
});
在console.log调试中,得到如下对象:
transferBook: Array(7)
0 : {myfield1: 'value1'}
1 : {myfield2: 'value2'}
2 : {myfield3: 'value3'}
3 : {myfield4: 'value4'}
4 : {myfield5: 'value5'}
length: 5
[[Prototype]] : Array(0)
但我只想得到一个数组
transferBook: Array(1)
0 : {myfield1: 'value1', myfield2: 'value2', myfield3: 'value3', myfield4: 'value4', myfield5: 'value5'}
length: 1
[[Prototype]] : Array(0)
我如何修改我的.each()来推入单个数组?谢谢大家!干杯!
5条答案
按热度按时间lvjbypge1#
谁需要jQuery?
见
如果您真的想将其放入数组中,只需将其括在方括号中即可
kzmpq1sx2#
您可以修改.each()方法以创建单个对象并将其推入myObject数组。
qni6mghb3#
使用
reduce
代替each
,如下所示完整代码:rqcrx0a64#
您可以使用jQuery的
map
,Object.fromEntries
从键值对数组创建对象。ia2d9nvy5#
看起来您需要为每个输入的
id
和value
创建一个键值对object。