Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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
Javascript 连接重复项目并添加数量_Javascript_Jquery_Html - Fatal编程技术网

Javascript 连接重复项目并添加数量

Javascript 连接重复项目并添加数量,javascript,jquery,html,Javascript,Jquery,Html,我正在处理标记中包含的两位文本。一个包含项目,另一个包含数量。但是,有时我有多个相同但数量不同的项目,因此我不能只计算字符串的出现次数(我从使用此方法开始,发现它仅在数量为1时有效) 这是我正在使用的代码: var joinArr=$('#rechighlight').html()//获取收到的项目 var qtyArr=$('#qtyArray').html()//获取接收数量 var createArr=joinArr.trim().split(“”)//按br标记拆分 var creat

我正在处理
标记中包含的两位文本。一个包含项目,另一个包含数量。但是,有时我有多个相同但数量不同的项目,因此我不能只计算字符串的出现次数(我从使用此方法开始,发现它仅在数量为1时有效)

这是我正在使用的代码:

var joinArr=$('#rechighlight').html()//获取收到的项目
var qtyArr=$('#qtyArray').html()//获取接收数量
var createArr=joinArr.trim().split(“
”)//按br标记拆分 var createArrQty=qtyArr.trim().split(“
”)//按br标记拆分 var resultingArr=[createArr,createArrQty]//按正确顺序创建数组 .reduce((r,a)=>(a.forEach((a,i)=>(r[i]=r[i]| |[])。push(a)),r),[])) .减少((a,b)=>a.concat(b)); var stringArr=JSON.stringify(resultingArr)//严格化结果 document.getElementById(“finArray”).innerHTML=stringArr//将结果添加到新div中

项目
数量
AAA
BBB
CCC
5
3
2
收到的物品 收到数量 AAA
BBB
AAA
CCC
CCC
3
3
2
1
1
我的输出 预期产量 [“AAA”、“5”、“BBB”、“3”、“CCC”、“2”、“1”、“3”]
您的reduce函数只需按以下方式构造即可:

var occurrences = createArr.reduce(function(obj, item, index) {
  obj[item] = Number(obj[item] || 0) + Number(createArrQty[index]);
  return obj;
}, {});
用键减少第一个数组,并用数量求和。 尽管您需要从每个数组中删除最后一项,因为它是
.split
函数中的空值

两个都做一个pop()。 代码如下

var joinArr=$('#rechighlight').html()//获取收到的项目
var qtyArr=$('#qtyArray').html()//获取接收数量
var createArr=joinArr.trim().split(“
”)//按br标记拆分 var createArrQty=qtyArr.trim().split(“
”)//按br标记拆分 createArr.pop(); createArrQty.pop(); 变量发生率=createArr.reduce(函数(对象、项目、索引){ 对象[项目]=编号(对象[项目]| | 0)+编号(数量[索引]); 返回obj; }, {}); var stringArr=JSON.stringify(出现)//严格化结果 document.getElementById(“finArray”).innerHTML=stringArr//将结果添加到新div中

项目
数量
AAA
BBB
CCC
5
3
2
收到的物品 收到数量 AAA
BBB
AAA
CCC
CCC
3
3
2
1
1
我的输出 预期产量 [“AAA”、“5”、“BBB”、“3”、“CCC”、“2”、“1”、“3”]
HTML和对象结构是最终的吗?我建议您最好使用带有实际行和单元格的
表中的值,而不是用
div
填充单行并按换行符拆分。类似地,作为对象数组而不是平面数组,结果会更有意义。一旦数据到达我可以编辑的位置,它就会被格式化为这个设置。我在与你上面所做的一个变体混在一起,并且意识到我在看你的数据时犯了一个错误(这就是为什么我的错误)。同时感谢您添加
.pop