在每个循环中分配数组值

Assign array values in each loop

本文关键字:分配 数组 循环      更新时间:2023-09-26

我正在尝试使用 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状态:"已收到"

1:对象条形码:"789"数量:"3"尺寸: 15状态:"已收到"

input.val() 在每个循环的每次迭代中都是不同的,它只是将最后一个值分配给所有条形码条目。

您可以将 extend() 与空对象一起使用来克隆单元对象,以便每个数组不引用同一个实例:

$(this).next('tr').children('td').each(function () {
        input = $(this).children('input');
        units[i] = $.extend({}, unit);
        units[i]['barcode'] = input.val();
        i++;
 });

现在,对于每个唯一的对象(包括条形码),这应该可以正常工作。