vue+elementui对象数组去重合并,value值累加,展示为字符串

3 篇文章 0 订阅
2 篇文章 0 订阅

vue+elementui对象数组去重合并,value值累加,展示为字符串

 <span v-if="bags.length>0"`>选中合计:{{selectCompositionTotal}}</span>
export default {
data(){
	retun{
		bags:[{
		bloodSubclasses:"12345",
		bloodSubclassesStr:"aaa",
		spec:"5",
		unit:"ml"
		},
		bloodSubclasses:"1234",
		bloodSubclassesStr:"bbb",
		spec:"5",
		unit:"ml"
		},
		bloodSubclasses:"12345",
		bloodSubclassesStr:"aaa",
		spec:"6",
		unit:"ml"
		},
		bloodSubclasses:"1234",
		bloodSubclassesStr:"aaa",
		spec:"2",
		unit:"ml"
		}]
}},
 computed: {
	
	    selectCompositionTotal () {
	      return this.getTotalSelectComposition()
	    }
},
methods:{
  getTotalSelectComposition(){
	let arr = [];
	      let arrStr = [];
	      arr.push(this.bags[0].bloodSubclasses);
	      arrStr.push(this.bags[0].bloodSubclassesStr);
	      this.bags.forEach((item, i) => {
	        if (i > 0) {
	          if (arr.toString().includes(item.bloodSubclasses)) {
	          } else {
	            arr.push(item.bloodSubclasses);
	            arrStr.push(item.bloodSubclassesStr);
	          }
	        }
	      });
	      let obj = {};
	      arrStr.forEach(item => {
	        obj[item] = "";
	      });
	      this.bags.forEach(item => {
	        arr.forEach((subItem, i) => {
	          if (item.bloodSubclasses == subItem) {
	            if (!obj[arrStr[i]]) {
	              obj[arrStr[i]] = item.spec + item.unit;
	            } else {
	              obj[arrStr[i]] = Number(obj[arrStr[i]].replace(/[^\d.]/g, '')) + Number(item.spec) + item.unit;
	            }
	          }
	        });
	      });
	      let str = "";
	      Object.getOwnPropertyNames(obj).forEach((key) => {
	        if (!str) {
	          str = str + key + ":" + obj[key]
	        } else {
	          str = str + "," + key + ":" + obj[key]
	        }
	      });
	      return str;
	}
  }
  }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值