JavaScript JSON数组去重与字段累加实现

作者:异步漫步

时间:2026-10-22

浏览:476

本文介绍了在JavaScript中对JSON数组进行去重的两种实现方式。首先针对特定业务场景,演示了如何根据paymode字段去重并累加paymoney金额;其次提供了一个通用的uniqueArray函数,支持指定任意key进行去重。文章附带了相关JSON工具链接供参考。

文章目录

JSON数组去重与累加实现

本文分享一个使用JavaScript实现的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数组去重逻辑。


/*
 * 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;
}

相关JSON工具推荐

关于JSON数据的操作,以下推荐几个实用的在线工具供参考:

在线JSON代码检验、格式化与美化工具: http://tools.jb51.net/code/json

JSON在线格式化工具: http://tools.jb51.net/code/jsonformat

在线XML与JSON互转工具: http://tools.jb51.net/code/xmljson

JSON代码在线格式化、美化、压缩及转换工具: http://tools.jb51.net/code/jsoncodeformat

在线JSON压缩与转义处理工具: http://tools.jb51.net/code/json_yasuo_trans

如需了解更多JavaScript相关知识,可查阅本站的《JavaScript中json操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》以及《JavaScript数学运算用法总结》等专题文章。

希望上述内容能对您的JavaScript编程工作提供帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章