vue实现将一个数组内的相同数据进行合并


Posted in Javascript onNovember 07, 2019

获取服务器传来的数组数据进行,找出其中价格相同的进行数量相加,合并该段数据:

/** 先将传来的订单列表进行四舍五入,再将价格相同的订单进行合并
  * @param {Object} orderList :要进行操作的订单
  */
 async mergeOrder(orderList) {
  console.log(orderList);
  let contrast_1 = JSON.parse(JSON.stringify(orderList));
  for(let x in contrast_1){
  contrast_1[x].trade_price = this.toDecimal(contrast_1[x].trade_price,this.digit_num); //进行四舍五入
  }
  
  let contrast_2 = JSON.parse(JSON.stringify(contrast_1)); //再复制一个用来做对比
  let containers = []; //存放已经合并后的数据
  /* 循环找出相同的值 */
  console.log(contrast_1);
  for(let i in contrast_1){
  console.log(contrast_1[i]);
  let container_list = {
   trade_num: contrast_1[i].trade_num,
   trade_order_id: contrast_1[i].trade_order_id,
   trade_price: contrast_1[i].trade_price,
   trade_type: contrast_1[i].trade_type
  }
  
  for(let m in contrast_2){
   if(!contrast_2[m]){
   if(m == i){
    container_list = null;
    break; //如果该值为空值就跳过
   }
   continue;
   }
   if(contrast_1[i].trade_price == contrast_2[m].trade_price){
   if(m == i){
    contrast_2[m] = null;
    continue;
   }
   /* 如果遇到没有合并的相同价格就进行累加 */
   container_list = {
    trade_num: parseInt(container_list.trade_num) + parseInt(contrast_2[m].trade_num),
    trade_order_id: container_list.trade_order_id + '--' + contrast_2[m].trade_order_id,
    trade_price: container_list.trade_price,
    trade_type: container_list.trade_type
   }
   contrast_2[m] = null; //销毁该次循环的值,防止多次循环到该值
   }
  }
  console.log(container_list);
  if(!container_list){
   //如果为空值就直接进行下次循环
   continue;
  }
  /* 将该次循环得到的数据放入容器内 */
  containers.push(container_list);
  console.log(containers);
  }
  console.log(containers);
  return containers;
 }
/**
  * @param {number} x: 要进行操作的数字
  * @param {number} digit: 要达到的精度,比如小数点后8位,不足补0
  */
 toDecimal(x, digit) {
  let f = parseFloat(x);
  let index = Math.pow(10, digit);
  if (isNaN(f)) {
  return false;
  }
  f = Math.round(x * index) / index; //四舍五入
  let s = f.toString();
  let rs = s.indexOf('.');
  if (rs < 0) {
  rs = s.length;
  if (digit > 0) {
   s += '.';
  }
  }
  if (digit > 0) {
  while (s.length <= rs + digit) {
   s += '0';
  }
  }
  return s;
 },

以上这篇vue实现将一个数组内的相同数据进行合并就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
functional继承模式 摘自javascript:the good parts
Jun 20 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
May 29 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
jquery移动节点实例
Jan 14 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
js 声明数组和向数组中添加对象变量的简单实例
Jul 28 Javascript
js实现表格筛选功能
Jan 18 Javascript
Angular实现的进度条功能示例
Feb 18 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
浅谈Node.js 中间件模式
Jun 12 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 Javascript
JS异步错误捕获的一些事小结
Apr 26 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 #jQuery
ElementUI多个子组件表单的校验管理实现
Nov 07 #Javascript
构建Vue大型应用的10个最佳实践(小结)
Nov 07 #Javascript
Node配合WebSocket做多文件下载以及进度回传
Nov 07 #Javascript
vue 实现单选框设置默认选中值
Nov 07 #Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
Nov 07 #Javascript
vue获取data数据改变前后的值方法
Nov 07 #Javascript
You might like
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
python多重继承实例
2014/10/11 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
2014新年元旦活动策划方案
2014/02/18 职场文书
党员违纪检讨书
2014/02/18 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
应聘教师自荐书
2014/06/16 职场文书
班主任2015新年寄语
2014/12/08 职场文书
邀请函范文
2015/02/02 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书