2017-02-16 7 views
-1

私は2つのajax呼び出しを行う関数を持っています。 1つの呼び出しは、他のオブジェクトを含むObjectを返します。もう1つはオブジェクトの配列です。他のオブジェクトと比較するオブジェクトを移動する

//Object 1 
1: { 
    table_info: { 
     id: "1", 
     event_id: "JHDQ", 
     name: "test", 
     cap: "10", 
     seating: "OPEN", 
     updated: "2017-02-12 16:34:01", 
     position_x: "10", 
     position_y: "99", 
     count: 2 
    }, 
    assignments: [{ 
     participant_id: "99154143", 
     seat_number: "2" 
     }, 
     { 
     participant_id: "99154149", 
     seat_number: "3" 
     } 
    ] 
    }, 
    3: { 
    table_info: { 
     id: "3", 
     event_id: "JHDQ", 
     name: "test", 
     cap: "10", 
     seating: "OPEN", 
     updated: "2017-02-12 16:17:00", 
     position_x: "10", 
     position_y: "99", 
     count: 2 
    }, 
    assignments: [{ 
     participant_id: "99154146", 
     seat_number: "2" 
     }, 
     { 
     participant_id: "99155361", 
     seat_number: "3" 
     } 
    ] 
    } 

//Object 2 
{ 
    id: "99155361", 
    first_name: "gary", 
    last_name: "banker", 
    email: "test2", 
    company: null 
}, { 
    id: "99155365", 
    first_name: "tim", 
    last_name: "banker", 
    email: "test1", 
    company: null 
} 

割り当て配列に到達するためにオブジェクト1を走査する必要があります。代入配列内の各インデックスに対して、participant_idとオブジェクト2の各IDを比較する必要があります。一致するものがあれば警告( "match")、そうでなければ警告( "不一致")です。これを達成するために私がしなければならないことを教えてください。

+1

「質問」に試した「javascript」を含めることはできますか? – guest271314

+0

http://stackoverflow.com/help/how-to-ask、http://stackoverflow.com/help/mcveを参照してください。 – guest271314

+0

戻り値ごとにループする必要があります。 object1に対して 'forEach'を使うことができます。 'forEach'内では、代入リストをループする必要があります。おそらく別の' forEach'や 'for'を使ってループする必要があります。そのループの中で、object2をループし、if/else文で '==='を使って現在の代入 'participant_id'と現在のオブジェクト' id'との単純な文字列比較を行います。一致が見つかった場合はアラート、それ以外の場合はアラート。 – haxxxton

答えて

0
//object with assignments 
var objects = {}; 
//array of assignmenents 
var objArray = []; 
//foreach key on first object find assignements 
Object.keys(objects).forEach(function(key) { 
    var assignments = objects[key].assignments || []; 
    //foreach assignment id match against id in the other array 
    assignments.forEach(function(assignment){ 
    objArray.forEach(function(oAssignment){ 
     if(assignment['participant_id'] === oAssignment.id){ 
     alert('Found match for: ' + assignment['participant_id']); 
     } 
    }); 
    }); 
}); 
+1

'for(オブジェクト内のvarキー)'の代わりに 'Object.keys(objects).forEach(function(key)'を選択した理由はありますか? –

+0

いいえ、実際はこれを使用しました。キーの方が読みやすくなります。 – VinPro

関連する問題