JSON 去重并将属性相加

本贴最后更新于 2466 天前,其中的信息可能已经时移世易

1.注意:本教程使用替换的方法只适用于 键值对为 [{"name":"1301","data","1"}]此类型的数据
2.我要干什么:我将会把后台返回的 JSON 数据中地区的区号转换为实际的地区名称,并且将重复地区的 data 相加


数据为:

var data = [ {"name":"1301","data":"1"}, {"name":"1301","data":"2"}, {"name":"1301","data":"0"}, {"name":"1302","data":"10"}, {"name":"1302","data":"20"}, {"name":"1303","data":"122"}, {"name":"1305","data":"13"} ];

name 去重 data 相加方法

/* *参数 * bef_obj : 需要替换的json对象 * aft_obj : 替换之后的json对象 * * return : 返回操作号的JSON对象 * warning : 如果需要操作的对象为空、为未定义、为空字符串都会返回-1,传参错误也会返回-1 */ function Dist_Num_Repl(bef_obj,aft_obj){ if(bef_obj==="undefined" && bef_obj === "" && bef_obj === null) return -1 bef_obj.forEach(el=>{ const result = data3.findIndex(ol=>{return el.name === ol.name}) if(result!== -1){ data3[result].data = Number(data3[result].data) + Number(el.data) }else{ el.data = Number(el.data) data3.push(el) } }) return data3 }

替换区号为地区名方法

/* * param:obj_传入JSON对象 * return : 返回替换好的JSON对象 * warning:如果obj是空或等于空字符串或为空都会导致程序结束并返回-1 */ function To_Rep_It(obj){ if(obj === "undefined" && obj === null && obj === "") return -1 obj = JSON.stringify(obj) var af_o = obj.replace("1301","石家庄") .replace("1302","唐山") .replace("1303","秦皇岛") .replace("1305","邢台") .replace("1304","邯郸") .replace("1306","保定") .replace("1307","张家口") .replace("1308","承德") .replace("1309","沧州") .replace("1310","廊坊") .replace("1311","衡水") return JSON.parse(af_o) }

使用方法

//首先定义一个变量用来接受去重并将data相加的数组 let re_data = [] //调用去重data属性相加方法,data为要操作的JSON对象,re_data是操作之后的JSON对象 re_data = Dist_Num_Repl(data,re_data) //调用替换地区代码方法 re_data = To_Rep_It(re_data)

查看效果

jsonpng

  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1281 回帖 • 3 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...