2017-05-03 7 views
0

名前とIDを含むオブジェクトがあります。 2番目のオブジェクトには、いくつかのフィールドと、最初のオブジェクトからのidフィールドがあります。例についてはオブジェクトを比較してサブ配列にプッシュする方法

FirstObj = [{ 
    _id: '48765465f42424', 
    Name : 'Sample' 
},{ 
    _id: '48765465f654654', 
    Name : 'Sample1' 
}] 
secondObj = [{ 
    Field1 : 5464, 
    subarray : [{ 
     Field2 : 14654, 
     Field3 : { IsActive : true, 
        FirstObjid : '48765465f42424' 
        }, 
     Field4 : { IsActive : true, 
        FirstObjid : '48765465f654654' 
        } 
      }] 
    }, 
    { 
    Field1 : 2145, 
    subarray : [{ 
     Field2 : 544644, 
     Field3 : { IsActive : true, 
        FirstObjid : '48765465f654654' 
        }, 
     Field4 : { IsActive : true, 
        FirstObjid : '48765465f42424' 
        }, 
     }] 
    }] 

今、私は両方を比較し、FirstObjidフィールドの横first objectからsecondobj's subobjにその名前をプッシュする必要があります。

予想される出力は次のとおりです。

secondObj = [{ 
    Field1 : 5464, 
    subarray : [{ 
     Field2 : 14654, 
     Field3 : { IsActive : true, 
        FirstObjid : '48765465f42424', 
        Name : 'Sample' 
        }, 
     Field4 : { IsActive : true, 
        FirstObjid : '48765465f654654', 
        Name : 'Sample1' 
        } 
      }] 
    }, 
    { 
    Field1 : 2145, 
    subarray : [{ 
     Field2 : 544644, 
     Field3 : { IsActive : true, 
        FirstObjid : '48765465f654654', 
        Name : 'Sample1' 
        }, 
     Field4 : { IsActive : true, 
        FirstObjid : '48765465f42424', 
        Name : 'Sample' 
        }, 
     }] 
    }] 

どのように私はそれを達成することができます。

+2

などのオブジェクトIDを比較あなたはJSまたはC#でそれを必要としますか(両方にタグを付けましたか)? – Mistalis

+0

私は関数をマップしようとしましたが、ここではサブにあります。私はJSではないC# –

答えて

0

使用map機能を試してみて、あなたは何を試してみました?この

var secondObj = [{ 
 
    Field1 : 5464, 
 
    subarray : [{ 
 
     Field2 : 14654, 
 
     Field3 : 'sfsadf', 
 
     FirstObjid : '48765465f42424' 
 
     }] 
 
    }, 
 
    { 
 
    Field1 : 2145, 
 
    subarray : [{ 
 
     Field2 : 544644, 
 
     Field3 : 'awrfsa', 
 
     FirstObjid : '48765465f654654' 
 
     }] 
 
    }] 
 
    
 
var FirstObj = [{ 
 
    _id: '48765465f42424', 
 
    Name : 'Sample' 
 
},{ 
 
    _id: '48765465f654654', 
 
    Name : 'Sample1' 
 
}] 
 

 
secondObj.subarray = secondObj.map(o => o.subarray.map(k=> FirstObj.map(l=> { 
 
    if(l._id == k.FirstObjid){ 
 
    k.Name = l.Name 
 
    } 
 
    return o; 
 
}))) 
 
    
 

 
console.log(secondObj)

+0

それは再マップされた 'サブ配列 'を返すので、' secondObj.subarray = ... ' – tanmay

+0

@tanmayあなたは正解です –

+0

@ sachilaranawaka編集した質問を確認してください。は役に立ちません。 –

4

この

secondObj.subarray.forEach(function(item){ 
if(item.FirstObjid==FirstObj._id) 
    item.Name = FirstObj.Name 
}) 
+0

申し訳ありませんが編集された質問を参照してください私はオブジェクト内の複数の配列を持っています。ここで各配列を調べる方法 –

関連する問題