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 相关文章推荐
动态表格Table类的实现
Aug 26 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
Jun 28 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
JavaScript实现找质数代码分享
Mar 24 Javascript
原生和jQuery的ajax用法详解
Jan 23 Javascript
利用PM2部署node.js项目的方法教程
May 10 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 Javascript
layui框架中layer父子页面交互的方法分析
Nov 15 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
Jul 19 Javascript
小谈angular ng deploy的实现
Apr 07 Javascript
Vue element-ui父组件控制子组件的表单校验操作
Jul 17 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 数组二分法查找函数代码
2010/02/16 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
详解python中的 is 操作符
2017/12/26 Python
python添加菜单图文讲解
2019/06/04 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python opencv进行图像拼接
2020/03/27 Python
django中ImageField的使用详解
2020/12/21 Python
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
如何开启linux的ssh服务
2015/02/14 面试题
最经典的商业地产项目广告词
2014/03/13 职场文书
产品发布会策划方案
2014/05/12 职场文书
生产车间标语
2014/06/11 职场文书
教育合作协议范本
2014/10/17 职场文书
档案管理员岗位职责
2015/02/12 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书