簡體   English   中英

如何在JavaScript中合並具有相同值的JSON數組

[英]How to merge json array with same values in javascript

我有兩個數組,我想合並具有相同值的數據

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

這是我的第一個數組:

[
{
"_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"
},
{
"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"
}
]

我想合並具有相同值0090000163的對象

我想獲得如果calleridnum == uid

我想得到這個輸出

"_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"

我在php中做。 但我對javascript沒有太多了解

這是我在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'];



       }
       }
      }

假設您有對象arr1arr2兩個數組,您需要遍歷兩個數組,比較arr1的值calleridnumarr2 uid (如果它們相同),然后將對象合並到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;
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM