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 相关文章推荐
jQuery 前的按键判断代码
Mar 19 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
Jan 08 Javascript
JS获得URL超链接的参数值实例代码
Jun 21 Javascript
编写高效jQuery代码的4个原则和5个技巧
Apr 24 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
Oct 17 Javascript
Bootstrap学习笔记之css样式设计(2)
Jun 07 Javascript
详解jQuery的Cookie插件
Nov 23 Javascript
AngularJS实现进度条功能示例
Jul 05 Javascript
javascript高级模块化require.js的具体使用方法
Oct 31 Javascript
微信小程序实现列表下拉刷新上拉加载
Jul 29 Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 Javascript
JS实现移动端在线签协议功能
Aug 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
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
PHP实现图片压缩的两则实例
2014/07/19 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
Python 代码性能优化技巧分享
2012/08/07 Python
Python解惑之整数比较详解
2017/04/24 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
SQL Server笔试题
2012/01/10 面试题
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
英文商务邀请信
2014/01/22 职场文书
小学生评语大全
2014/04/18 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
大专生求职信
2014/06/29 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
应急管理工作总结2015
2015/05/04 职场文书
离婚律师函范本
2015/05/27 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL