js 合并json 数组中有同⼀key 值的json
问题:把下列json 数组中有相同”BrandType”的json 的“CarName”合并
结果:arr
数组就是合并后的值
var  json = [
{"BrandType":"⼀汽⼤众奥迪", "CarName": "100"},
{"BrandType":"⼀汽⼤众奥迪", "CarName": "200"},
{"BrandType": "奥迪进⼝", "CarName": "A5"}            ];
var  arr = new  Array();
/
/循环json 数组
function  jsonLoop (json,arr){
for (var  m in  json){
var  jsonValue = json[m];
var  mn = findValue(arr,jsonValue.BrandType);
if (mn>=0){//⼤于0 说明存在相同的
arr[mn] = addValue(arr[mn],"CarName",jsonValue.CarName);
}else {
arr.push(JSON.stringify(jsonValue))
}
}
console.log(arr)
}
//查是否存相同value,在并返回下标
function  findValue (json,value){
for (var  n in  json){
var  jsonValue = JSON.parse(json[n])
if (jsonValue.BrandType == value){
return  parseInt(n);
}
}
return  -1;
}
// 存在相同value 值合并
js合并两个数组function  addValue (json,key,value){
var  jsonValue = JSON.parse(json);
var  j = new  Array(jsonValue[key])
j.push(value)
jsonValue[key] = "["+j.toString()+"]";
return  JSON.stringify(jsonValue);
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。