简体   繁体   中英

How to merge json array with same values in javascript

I have two array and i want to merge the data with the same value of

"calleridnum":"0090000163", "uid":"0090000163",

this is my first array:

[
{
"_id":"55d44fe38879f12e6431c23c",
"event":"ConfbridgeJoin",
"channel":"SIP/peer_voip301confbridge-00000145",
"uniqueid":"1439977429.777",
"conference":"0090000167",
"calleridnum":"0090000163",
"calleridname":"0090000163",
"__v":0,
"sipSetting":{
"accountcode":"",
"accountcode_naisen":"202",
"extentype":0,
"extenrealname":"",
"name":"0090000163",
"secret":"Myojyo42f!",
"username":"0090000163",
"context":"innercall_xdigit",
"gid":101,
"cid":"0090000007"
}
}
]

This is my second array

[
{
"id":8,
"uid":"0090000163",
"cid":"0090000007",
"extension":"202",
"secret":"Myojyo42f!",
"leader":true,
"simultaneous":false,
"confbridge_id":6,
"created_at":"2015-08-18 09:22:20",
"updated_at":"2015-08-18 09:22:20"
},
{
"id":15,
"uid":"0090000164",
"cid":"0090000007",
"extension":"203",
"secret":"Myojyo42f!",
"leader":false,
"simultaneous":false,
"confbridge_id":6,
"created_at":"2015-08-19 01:26:30",
"updated_at":"2015-08-19 01:26:30"
}
]

i want to merge the object with the same value of 0090000163

i want to get if calleridnum == uid

i want to get this output

"_id":"55d44fe38879f12e6431c23c",
    "event":"ConfbridgeJoin",
    "channel":"SIP/peer_voip301confbridge-00000145",
    "uniqueid":"1439977429.777",
    "conference":"0090000167",
    "calleridnum":"0090000163",
    "calleridname":"0090000163",
    "__v":0,
    "sipSetting":{
    "accountcode":"",
    "accountcode_naisen":"202",
    "extentype":0,
    "extenrealname":"",
    "name":"0090000163",
    "secret":"Myojyo42f!",
    "username":"0090000163",
    "context":"innercall_xdigit",
    "gid":101,
    "cid":"0090000007"
    "id":8,
    "uid":"0090000163",
    "cid":"0090000007",
    "extension":"202",
    "secret":"Myojyo42f!",
    "leader":true,
    "simultaneous":false,
    "confbridge_id":6,
    "created_at":"2015-08-18 09:22:20",
    "updated_at":"2015-08-18 09:22:20"

i do it in php . but i dont have much knowledge in javascript

this is my code in php

// $apiResults['participants'] == first array
// $apiResults['conference_participants'] == second array


$conf_participants = array();
      foreach($apiResults['participants'] as $participant)
      {
       foreach($apiResults['conference_participants'] as $conference_participant)
         {
    if($participant['calleridnum'] == $conference_participant['uid'])
        {

           $conf_participants['uniqueid'] = $participant['uniqueid'];
           $conf_participants['event'] = $participant['event'];
           $conf_participants['channel'] = $participant['channel'];
           $conf_participants['uid'] = $conference_participant['uid'];



       }
       }
      }

lets say you have two arrays of objects arr1 and arr2 You need to loop through both, compare the value calleridnum from arr1 and uid from arr2 if they are same then merge the object in arr1 .

for(var i in arr1){
for (var j in arr2)
   if (arr2[j].uid == arr1[i].calleridnum ) {
    $.extend(arr1[i], arr2[j]);
       break;
   }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM