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控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 Javascript
JavaScript 大数据相加的问题
Aug 03 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
JSON与XML优缺点对比分析
Jul 17 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 Javascript
js实现创建删除html元素小结
Sep 30 Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
Angular4实现图片上传预览路径不安全的问题解决
Dec 25 Javascript
小程序云开发部署攻略(图文教程)
Oct 30 Javascript
js实现九宫格布局效果
May 28 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中上传大体积文件时需要的设置
2006/10/09 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP如何使用Memcached
2016/04/05 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
pandas DataFrame索引行列的实现
2019/06/04 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
实例代码讲解Python 线程池
2020/08/24 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
浅析python实现动态规划背包问题
2020/12/31 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
会计出纳员的自我评价
2014/01/15 职场文书
小学新学期寄语
2014/04/02 职场文书
父母对孩子说的话
2014/04/12 职场文书
英文推荐信格式范文
2014/05/09 职场文书
测控技术自荐信
2014/06/05 职场文书
长城导游词400字
2015/01/30 职场文书
感恩主题班会教案
2015/08/12 职场文书
化工生产实习心得体会
2016/01/22 职场文书
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript
mysql中整数数据类型tinyint详解
2021/12/06 MySQL
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL