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类型检查实现代码
Oct 29 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
JavaScript实现SHA-1加密算法的方法
Mar 11 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
Apr 14 Javascript
理解js对象继承的N种模式
Jan 25 Javascript
js+canvas绘制五角星的方法
Jan 28 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 Javascript
小程序实现单选多选功能
Nov 04 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
Nov 28 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
May 30 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 SQL之where语句生成器
2009/03/24 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
基于jQuery的表格操作插件
2010/04/22 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
js实现移动端轮播图滑动切换
2020/12/21 Javascript
Python验证码识别处理实例
2015/12/28 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
深入浅析python with语句简介
2018/04/11 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Python发展史及网络爬虫
2019/06/19 Python
Python目录和文件处理总结详解
2019/09/02 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
几个判断型的面试题
2012/07/03 面试题
检举信的格式及范文
2014/04/04 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
民事答辩状范本
2015/05/21 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
PHP策略模式写法
2021/04/01 PHP
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript