JS实现的JSON数组去重算法示例


Posted in Javascript onApril 11, 2018

本文实例讲述了JS实现的JSON数组去重算法。分享给大家供大家参考,具体如下:

需求描述:去除JSON数组中paymode字段相同的项,并将paymoney累加。

paylist:[{paymode:'1',payname:"现金",paymoney:"20"},
{paymode:'2',payname:"支付宝",paymoney:"50"},{paymode:'1',payname:"现金",paymoney:"40"}]
function UniquePay(paylist){
  var payArr = [paylist[0]];
  for(var i = 1; i < paylist.length; i++){
    var payItem = paylist[i];
    var repeat = false;
    for (var j = 0; j < payArr.length; j++) {
     if (payItem.paymode == payArr[j].paymode) {
        payArr[j].paymoney = parseFloat(payArr[j].paymoney)+parseFloat(payItem.paymoney);
         repeat = true;
         break;
     }
   }
       if (!repeat) {
         payArr.push(payItem);
       }
  }
  return payArr;
}

通用的JSON数组去重

/*
 * JSON数组去重
 * @param: [array] json Array
 * @param: [string] 唯一的key名,根据此键名进行去重
 */
function uniqueArray(array, key){
  var result = [array[0]];
  for(var i = 1; i < array.length; i++){
    var item = array[i];
    var repeat = false;
    for (var j = 0; j < result.length; j++) {
      if (item[key] == result[j][key]) {
        repeat = true;
        break;
      }
    }
    if (!repeat) {
      result.push(item);
    }
  }
  return result;
}
Javascript 相关文章推荐
Mootools 1.2教程 输入过滤第二部分(字符串)
Sep 15 Javascript
jQuery 白痴级入门教程
Nov 11 Javascript
JS函数验证总结(方便js客户端输入验证)
Oct 29 Javascript
javascript 节点排序 2
Jan 31 Javascript
一个仿糯米弹框效果demo
Jul 22 Javascript
JavaScript动态创建div等元素实例讲解
Jan 06 Javascript
D3.js实现直方图的方法详解
Sep 25 Javascript
jQuery如何跳转到另一个网页 就这么简单
Dec 28 Javascript
@angular前端项目代码优化之构建Api Tree的方法
Dec 24 Javascript
webpack-mvc 传统多页面组件化开发详解
May 07 Javascript
微信小程序动态添加view组件的实例代码
May 23 Javascript
在Express中提供静态文件的实现方法
Oct 17 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 #jQuery
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 #Javascript
node结合swig渲染摸板的方法
Apr 11 #Javascript
详解react、redux、react-redux之间的关系
Apr 11 #Javascript
Mac下安装vue
Apr 11 #Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 #Javascript
手动用webpack搭建第一个ReactApp的示例
Apr 11 #Javascript
You might like
在smarty中调用php内置函数的方法
2013/02/07 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
使用python分析git log日志示例
2014/02/27 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
Python使用OpenCV进行标定
2018/05/08 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Python threading的使用方法解析
2019/08/28 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
医生辞职信范文
2015/03/02 职场文书
小学感恩节活动总结
2015/03/24 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
导游词之长城八达岭
2019/09/24 职场文书