上篇文章讲解 如何把数组对象中相同的key值合并,并且把对应的id放到一个数组中。这篇文章讲解另一种合并js数组对象中数据的场景。
1、获取原始的数组arr数据
2、创建一个map空对象和一个dest空数组,通过判断map中是否含有某项,来判断数组dest是否添加数据
3、判断相同项和已有的dest数组内容比较合并代码如下:
<script type="text/javascript" src="js/jquery.min.js"></script> <script> $(function(){ var arr = [ {id: "1", medName: "益智仁", quantity: "15", sendNum: "7"}, {id: "1", medName: "益智仁", quantity: "10", sendNum: "7"}, {id: "2", medName: "葶苈子", quantity: "10", sendNum: "6"}, {id: "2", medName: "葶苈子",quantity: "15", sendNum: "7"}, {id: "3", medName: "枳实", quantity: "10", sendNum: "7"}, {id: "3", medName: "枳实", quantity: "10", sendNum: "6"} ]; var map = {},dest = []; for(var i = 0; i < arr.length; i++){ var ai = arr[i]; if(!map[ai.id]){ dest.push({id: ai.id, medName: ai.medName, value: ai.quantity*1*ai.sendNum}); map[ai.id] = ai; } else { for(var j = 0; j < dest.length; j++){ var dj = dest[j]; if(dj.id == ai.id){ dj.value = parseInt(dj.value) + parseInt(ai.quantity*1*ai.sendNum); break; } } } }; console.log(dest); }) </script>
结果如图:
js数组对象相同项合并处理
最新推荐文章于 2024-08-07 21:49:18 发布