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)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于