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 相关文章推荐
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
Jan 09 Javascript
JavaScript入门学习书籍推荐
Jun 12 Javascript
javascript Array.prototype.slice使用说明
Oct 11 Javascript
javascript 基础篇2 数据类型,语句,函数
Mar 14 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
JavaScript运动框架 多值运动(四)
May 18 Javascript
详解vue项目的构建,打包,发布全过程
Nov 23 Javascript
JavaScript 性能提升之路(推荐)
Apr 10 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
Jun 10 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 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
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
php无限遍历目录示例
2014/02/21 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
[原创]图片分页查看
2006/08/28 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
浅谈vue的踩坑路
2017/08/31 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
python文件与目录操作实例详解
2016/02/22 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
Python argparse模块应用实例解析
2019/11/15 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Python中私有属性的定义方式
2020/03/05 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
什么是python的必选参数
2020/06/21 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
材料采购员岗位职责
2013/12/17 职场文书
节约能源标语
2014/06/17 职场文书
平面设计师岗位职责
2014/09/18 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
入党团支部推荐意见
2015/06/02 职场文书
社区低保工作总结2015
2015/07/23 职场文书
新兵入伍决心书
2015/09/22 职场文书