0

我在 javascripts 中有两个对象数组。就像arr1[] = {emp1,emp2,emp3}inturnemp1拥有emp1.nameemp1.address作为财产一样。

就像是

arr1={object {name='a',address='b'} {name='c',address='d'} {name='e',address='f'} }. 
arr2={object {name='a',address='b'}}. 

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

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

4

2 回答 2

0

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

于 2012-05-30T14:49:38.177 回答
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 个数组并返回第三个.

于 2012-05-30T15:02:09.110 回答