0

JavaScript にオブジェクトの 2 つの配列があります。arr1[] = {emp1,emp2,emp3}intemp1が持っている場所emp1.nameとプロパティとしてのようemp1.addressに。

何かのようなもの

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

name2 つの配列オブジェクトのプロパティを比較し、不足している項目を別の配列に入力したいと考えていました。したがって、結果は 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つの配列をループし、要素が同じでない場合、それらは3番目の配列に入れられます。これは、aarr1 の名前が arr2 と同じかどうかをチェックしています。他の方法ではチェックしません (つまり、arr2 に arr1 に存在しない要素がある場合、arr3 には配置されません) が、少なくとも開始する必要があります。関数は 2 つの配列を受け入れ、3 番目の配列を返します。 .

于 2012-05-30T15:02:09.110 に答える