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 相关文章推荐
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
jquery中animate动画积累的解决方法
Oct 05 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
jQuery中:image选择器用法实例
Jan 03 Javascript
javascript实现十秒钟后注册按钮可点击的方法
May 13 Javascript
jQuery实现自动调整字体大小的方法
Jun 15 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
Feb 19 Javascript
微信小程序分享海报生成的实现方法
Dec 10 Javascript
node.js的http.createServer过程深入解析
Jun 06 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
基于JavaScript实现省市联动效果
Jun 22 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
linux下 C语言对 php 扩展
2008/12/14 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
小结Python用fork来创建子进程注意事项
2014/07/03 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
python 简单的调用有道翻译
2020/11/25 Python
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
狼和鹿教学反思
2014/02/05 职场文书
军训考核自我鉴定
2014/02/13 职场文书
个人银行贷款担保书
2014/04/01 职场文书
受伤赔偿协议书
2014/09/24 职场文书
党员剖析材料范文
2014/09/30 职场文书
利用python做数据拟合详情
2021/11/17 Python
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js
Python使用DFA算法过滤内容敏感词
2022/04/22 Python