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 相关文章推荐
javascript TextArea动态显示剩余字符
Oct 22 Javascript
jQuery 遍历json数组的实现代码
Sep 22 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
Nov 08 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
Dec 03 Javascript
AngularJS  自定义指令详解及实例代码
Sep 14 Javascript
深入理解bootstrap框架之入门准备
Oct 09 Javascript
VueJS全面解析
Nov 10 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
Apr 25 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
Aug 13 Javascript
jQuery中getJSON跨域原理的深入讲解
Sep 02 jQuery
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
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/07/30 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
jQuery-mobile事件监听与用法详解
2016/11/23 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
Python实现字典的key和values的交换
2015/08/04 Python
Python中生成Epoch的方法
2017/04/26 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
Python的多维空数组赋值方法
2018/04/13 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
python实现可变变量名方法详解
2019/07/01 Python
python动态视频下载器的实现方法
2019/09/16 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
法学专业毕业生求职信
2014/06/12 职场文书
公司2015年终工作总结
2015/05/26 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技