合并2个数组对象 [英] Merge 2 arrays of objects

查看:311
本文介绍了合并2个数组对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我们看看一个例子。

  VAR ARR1 =新的Array({名:郎,值:英语},{名字:年龄,值:18});
VAR ARR2 =新的Array({名:童车,值:'5'},{名字:郎,值:德国});

我需要合并这2个数组对象,并创建以下数组。

  ARR3 =新的Array({名:郎,值:德国},{名字:年龄,值:18},{名字:童车值:'5'});

有没有JScript或jQuery的功能来做到这一点?

$。延长不适合我。它返回

  arr4 =新的Array({名:童车,值:'5'},{名字:郎,值:德国});

在此先感谢,
亚历山大。


解决方案

  VAR ARR3 = [];
对(在ARR1变种I){
   VAR共享= FALSE;
   对(在ARR2变种j)条
       如果(ARR2 [J]。名称== ARR1 [我]。名称){
           共享= TRUE;
           打破;
       }
   如果(!共享)arr3.push(ARR1 [I])
}
ARR3 = arr3.concat(ARR2);

Lets have a look an example.

var arr1 = new Array({name: "lang", value: "English"}, {name: "age", value: "18"});
var arr2 = new Array({name : "childs", value: '5'}, {name: "lang", value: "German"});

I need to merge this 2 arrays of objects and create the following array.

arr3 = new Array({name: "lang", value: "German"}, {name: "age", value: "18"}, {name : "childs", value: '5'});

Is there any jScript or jQuery function to do this?

$.extend doesn't suit me. It returns

arr4 = new Array({name : "childs", value: '5'}, {name: "lang", value: "German"});

Thanks in advance, Alexander.

解决方案

var arr3 = [];
for(var i in arr1){
   var shared = false;
   for (var j in arr2)
       if (arr2[j].name == arr1[i].name) {
           shared = true;
           break;
       }
   if(!shared) arr3.push(arr1[i])
}
arr3 = arr3.concat(arr2);

这篇关于合并2个数组对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆