问题:把下列json数组中有相同”BrandType”的json 的“CarName”合并
var json = [
{"BrandType":"一汽大众奥迪", "CarName": "100"},
{"BrandType":"一汽大众奥迪", "CarName": "200"},
{"BrandType": "奥迪进口", "CarName": "A5"}
];
结果:arr 数组就是合并后的值
var arr = new Array();
function jsonLoop(json,arr){
for(var m in json){
var jsonValue = json[m];
var mn = findValue(arr,jsonValue.BrandType);
if(mn>=0){
arr[mn] = addValue(arr[mn],"CarName",jsonValue.CarName);
}else{
arr.push(JSON.stringify(jsonValue))
}
}
console.log(arr)
}
function findValue(json,value){
for(var n in json){
var jsonValue = JSON.parse(json[n])
if(jsonValue.BrandType == value){
return parseInt(n);
}
}
return -1;
}
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);
}