[英]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'];
}
}
}
假设您有对象arr1
和arr2
两个数组,您需要遍历两个数组,比较arr1
的值calleridnum
和arr2
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.