本文介绍了在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编程工作提供帮助。