在每个循环中分配数组值
Assign array values in each loop
我正在尝试使用 each 循环遍历输入字段,将其他表单数据添加到数组,然后将该输入值添加到数组中已有的表单数据。
它似乎基本上可以工作,但每次我设置输入时,它都会在数组中具有该名称的所有条目中设置该值。关于我的逻辑偏向哪里有什么想法吗?
$(this).next('tr').children('td').each(function () {
input = $(this).children('input');
units[i] = unit;
units[i]['barcode'] = input.val();
i++;
});
输出对象:
对象 {0:对象,1:对象}
0:对象
条形码:“789”
数量:“3”
尺码:15
状态:"received"
1:对象
条形码:“789”
数量:“3”
尺码:15
状态:"received"
input.val() 在每个循环的每次迭代中都是不同的,它只是将最后一个值分配给所有条形码条目。
您可以使用 extend() 和一个空对象来克隆单元对象,这样每个数组就不会引用同一个实例:
$(this).next('tr').children('td').each(function () {
input = $(this).children('input');
units[i] = $.extend({}, unit);
units[i]['barcode'] = input.val();
i++;
});
现在每个对象都独一无二,包括条形码,这应该可以正常工作。
我正在尝试使用 each 循环遍历输入字段,将其他表单数据添加到数组,然后将该输入值添加到数组中已有的表单数据。
它似乎基本上可以工作,但每次我设置输入时,它都会在数组中具有该名称的所有条目中设置该值。关于我的逻辑偏向哪里有什么想法吗?
$(this).next('tr').children('td').each(function () {
input = $(this).children('input');
units[i] = unit;
units[i]['barcode'] = input.val();
i++;
});
输出对象: 对象 {0:对象,1:对象} 0:对象 条形码:“789” 数量:“3” 尺码:15 状态:"received"
1:对象 条形码:“789” 数量:“3” 尺码:15 状态:"received"
input.val() 在每个循环的每次迭代中都是不同的,它只是将最后一个值分配给所有条形码条目。
您可以使用 extend() 和一个空对象来克隆单元对象,这样每个数组就不会引用同一个实例:
$(this).next('tr').children('td').each(function () {
input = $(this).children('input');
units[i] = $.extend({}, unit);
units[i]['barcode'] = input.val();
i++;
});
现在每个对象都独一无二,包括条形码,这应该可以正常工作。