Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何将相同的值收集到JSON对象中?_Jquery_Arrays_Json - Fatal编程技术网

Jquery 如何将相同的值收集到JSON对象中?

Jquery 如何将相同的值收集到JSON对象中?,jquery,arrays,json,Jquery,Arrays,Json,我有以下格式的多个输入: <input type='text' class='i_skema_qty' id='skema_1_bbg' value='1000' /> <input type='text' class='i_skema_qty' id='skema_1_acg' value='700' /> <input type='text' class='i_skema_qty' id='skema_2_bbg' value='1200' /> <

我有以下格式的多个输入:

<input type='text' class='i_skema_qty' id='skema_1_bbg' value='1000' />
<input type='text' class='i_skema_qty' id='skema_1_acg' value='700' />
<input type='text' class='i_skema_qty' id='skema_2_bbg' value='1200' />
<input type='text' class='i_skema_qty' id='skema_3_bbg' value='1700' />
<input type='text' class='i_skema_qty' id='skema_2_acg' value='1540' />
<input type='text' class='i_skema_qty' id='skema_1_spm' value='900' />
<input type='text' class='i_skema_qty' id='skema_2_spm' value='300' />


//CONTAINER
<input type='text' class='i_grand_total' id='total_bbg' />
<input type='text' class='i_grand_total' id='total_acg' />
<input type='text' class='i_grand_total' id='total_spm' />
阵列中的
单元\u kerja
根据输入动态变化。然而,它总是大于零。然后,数组应该插入到与数组计数匹配的
i_grand_total
容器中

这是我当前的脚本,我被困在这里:

var grand_total = 0;
    $('.i_skema_qty').each(function(i){
        var _this_ttl    = $(this);

        var total_item   = parseFloat( _this_ttl.val().replace(',', '') );

        var arr_uk_skema = _this_ttl.attr('id').split('_');
        var uk_skema     = arr_uk_skema[2];                

        grand_total      = grand_total + total_item;
        alert(uk_skema +":"+ grand_total);          
    });

我将简化为一个由
unit\u kerja
索引的对象,其值是数组对象,例如
{“unit\u kerja”:“bbg”,“total”:“3900”}
。迭代每个
i_skema_qty
,如果对象尚不存在,则在累加器中创建该对象,并添加到
总数中。然后,获取对象的值以将其转换回数组,并映射以将
total
转换为字符串而不是数字:

const group=[…$('.i_skema_qty')]
.减少((a,输入)=>{
const key=input.id.match(/[a-z]+$/)[0];
如果(!一个[键]){
a[key]={unit_kerja:key,总计:0};
}
a[key].total+=Number(输入.value);
返回a;
}, {});
常量输出=对象值(分组)
.map(obj=>({…obj,total:String(obj.total)});
控制台日志(输出)


Hi@当然,谢谢你的回答。但是,我不熟悉您的代码。我使用的是jquery的旧版本。我希望你能根据你的代码修改我当前的代码。对不起,我的英语不好。我在这里使用的唯一jQuery是
$('.I_skema_qty')
-其他所有东西都是内置的Javascript,别担心,任何版本的jQuery都可以很好地工作(你甚至可以很容易地从脚本中删除jQuery,只需将
$
替换为
querySelectorAll
var grand_total = 0;
    $('.i_skema_qty').each(function(i){
        var _this_ttl    = $(this);

        var total_item   = parseFloat( _this_ttl.val().replace(',', '') );

        var arr_uk_skema = _this_ttl.attr('id').split('_');
        var uk_skema     = arr_uk_skema[2];                

        grand_total      = grand_total + total_item;
        alert(uk_skema +":"+ grand_total);          
    });