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 相关文章推荐
js压缩利器
Feb 20 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
Apr 16 Javascript
javascript判断非数字的简单例子
Jul 18 Javascript
JS根据变量保存方法名并执行方法示例
Apr 04 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
Angular中使用better-scroll插件的方法
Mar 27 Javascript
实例讲解vue源码架构
Jan 24 Javascript
微信小程序实现bindtap等事件传参
Apr 08 Javascript
详解微信小程序缓存--缓存时效性
May 02 Javascript
vue + typescript + 极验登录验证的实现方法
Jun 27 Javascript
layer.prompt输入层的例子
Sep 24 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 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
PHP调用三种数据库的方法(1)
2006/10/09 PHP
php 时间计算问题小结
2009/01/04 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
php递归函数怎么用才有效
2018/02/24 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
js判断节假日实例代码
2017/12/27 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
Python常用的日期时间处理方法示例
2015/02/08 Python
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
对Python中range()函数和list的比较
2018/04/19 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
工商管理本科生求职信
2014/07/13 职场文书
拿破仑传读书笔记
2015/07/01 职场文书