Jquery 按id将两个json对象合并到一个对象中
我有两个类似这样的json对象:Jquery 按id将两个json对象合并到一个对象中,jquery,ajax,json,Jquery,Ajax,Json,我有两个类似这样的json对象: Object 1: { "jcat":[ { "TITLE":"SEO", "ID":"27", }, { "TITLE":"Functions and Events", "ID":"2" }, ] } Object 2: { "job":[ { "PCATID":"27", "CC":"AHE",
Object 1:
{
"jcat":[
{
"TITLE":"SEO",
"ID":"27",
},
{
"TITLE":"Functions and Events",
"ID":"2"
},
]
}
Object 2:
{
"job":[
{
"PCATID":"27",
"CC":"AHE",
"JNUM":"01488"
},
{
"PCATID":"27",
"CC":"EBS",
"JNUM":"01489"
},
]}
它们有共同的idsID和PCATID,但名称不同
如何合并它们以使最终对象看起来像:
目标3:
{
"jcat":[
{
"TITLE":"SEO",
"ID":"27",
"CC":"AHE",
"JNUM":"01488"
},
{
"TITLE":"SEO",
"ID":"27",
"CC":"EBS",
"JNUM":"01489"
},
]
}
要做到这一点,没有真正简单的方法。但以下措施将起作用:
var obj1 = {
"jcat":[
{
"TITLE":"SEO",
"ID":"27",
},
{
"TITLE":"Functions and Events",
"ID":"2"
}]
};
var obj2 =
{
"job":[
{
"PCATID":"27",
"CC":"AHE",
"JNUM":"01488"
},
{
"PCATID":"27",
"CC":"EBS",
"JNUM":"01489"
}
]};
var newObj = {jcat:[]};
newObj.jcat[0] = $.extend(true, {}, obj1.jcat[0], $.map([obj2.job[0]],function(e){
return {CC:e.CC, JNUM:e.JNUM};
})[0]);
newObj.jcat[1] = $.extend(true, {}, obj1.jcat[0], $.map([obj2.job[1]], function(e){
return {CC:e.CC, JNUM:e.JNUM};
})[0]);
JS小提琴: