Javascript对象数组比较

时间:2012-05-30 14:33:18

标签: javascript jquery

我在javascripts中有两个对象数组。与arr1[] = {emp1,emp2,emp3}一样,其中emp1具有emp1.nameemp1.address作为属性。

这样的东西
arr1={object {name='a',address='b'} {name='c',address='d'} {name='e',address='f'} }. 
arr2={object {name='a',address='b'}}. 

我想比较两个数组对象的name属性,并将缺少的项填充到另一个数组中。结果将是结果[] = {'c','e'}

什么是实现这一目标的有效方法?我不指望代码,请指导我正确的方向。感谢。

2 个答案:

答案 0 :(得分:0)

Array.filter方法可能会有所帮助。查看更多信息here

答案 1 :(得分:0)

该功能可能看起来像

      function foo(arr1,arr2){
    var arr3 = new Array();
    var x=0;
    for (var j =0; j<arr1.length; j++)
         for(var i=0; i<arr2.length; i++)
            if(arr1[j].name != arr2[i].name){
               arr3[x]=arr1[i];
               x++;
    }
 return(arr3); 
  }

这将遍历2个数组,如果元素不相同,那么它们将被放入第三个数组中。这是检查aarr1中的任何名称是否与arr2中的相同。它没有检查另一种方式。(即如果arr2有一个arr1中不存在的元素,它将不会被放入arr3)但至少它应该让你开始。该函数将接受2个数组并返回第三个