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 相关文章推荐
获得所有表单值的JQuery实现代码[IE暂不支持]
May 24 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 Javascript
jQuery函数的等价原生函数代码示例
May 27 Javascript
JavaScript的漂亮的代码片段
Jun 05 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
深入浅析JavaScript中对事件的三种监听方式
Sep 29 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
phantomjs导出html到pdf的方法总结
Oct 19 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
Jul 10 Javascript
vue通过cookie获取用户登录信息的思路详解
Oct 30 Javascript
Vue.js实现备忘录功能
Jun 26 Javascript
Vue自定义多选组件使用详解
Sep 08 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
php 静态页面中显示动态内容
2009/08/14 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
js封装可使用的构造函数继承用法分析
2015/01/28 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
python3 logging日志封装实例
2020/04/08 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
优秀党员获奖感言
2014/02/18 职场文书
国庆促销活动总结
2014/08/29 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
2019年大学推荐信
2019/06/24 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL