2017-10-26 28 views
0

からオブジェクトを取得し、私はこの配列を持っている:は、複雑な配列

var hemicycle = { 

    Group1 : [{ 
     GroupName : "Les bests", 
     Member1 : [{ 
      Name : "Loris Plasson", 
      Seat : 4, 
      Vignette : "PhotoURL" 
     }], 
     Member2 : [{ 
      Name : "Anne-Sophie", 
      Seat : 3, 
      Vignette : "PhotoURL" 
     }] 

    }] 

私はSeat値に依存し、別のオブジェクト上のオブジェクトMember1またはMember2をプッシュします。

var array = [ 
    { name:"string 1", value:"this", other: "that" }, 
    { name:"string 2", value:"this", other: "that" } 
]; 

:私はforループでシート値を「検索」やオブジェクトを取得する必要があると思うが、私はStackOverflowの上で見つかったすべての例は、このような単純な配列であったことを行うには

これらの単純な配列を使うと、forループのようなものをarray[i]と使うことができます。

しかし、私の場合、私は本当に何をするか分からない

...

UPDATE:私が欲しいもの:該当するシートの値を含むメンバーオブジェクトが検索。次に、Memberオブジェクトを別のオブジェクトにプッシュします。

ありがとうございました。

+0

はあなたが最終的な結果として期待して何? – Durga

+0

座席基準(座席> 3など)とは何ですか?各座席の値が1つのオブジェクトだけであるか、「座席:3」の複数の人が存在する可能性がありますか? –

+0

'hemicycle.Group1'のループを使って検索できます – edkeveked

答えて

1

使用するデータ構造は、伝達しようとしているものを反映しておらず、さらにトラバースするのに非常に耳にするものです。

グループの配列を作成することをお勧めします。いずれかのグループを反復すること、及びに他の - あなたがループのために2使用してメンバーを見つける

[{ 
    "GroupName": "Les bests", 
    "members": [{ 
     "Name": "Loris Plasson", 
     "Seat": 4, 
     "Vignette": "PhotoURL" 
    }, 
    { 
     "Name": "Anne-Sophie", 
     "Seat": 3, 
     "Vignette": "PhotoURL" 
    } 
    ] 
}] 

この構造を使用する:各グループは、メンバオブジェクトの配列であるメンバプロパティを有するオブジェクトであります各グループのメンバーを繰り返します。メンバが見つかると、そのメンバのオブジェクトがすぐに返されます。 undefinedない場合が返されます。

var groups = [{"GroupName":"Les bests","members":[{"Name":"Loris Plasson","Seat":4,"Vignette":"PhotoURL"},{"Name":"Anne-Sophie","Seat":3,"Vignette":"PhotoURL"}]}]; 
 

 
var seatNum = 4; 
 

 
function findMember(seatNum) { 
 
    var members; 
 
    for(var i = 0; i < groups.length; i++) { 
 
    members = groups[i].members; 
 
    for(var j = 0; j < members.length; j++) { 
 
     if(members[j].Seat = seatNum) { 
 
     return members[j]; 
 
     } 
 
    } 
 
    } 
 
} 
 

 
var member = findMember(seatNum); 
 

 
console.log(member);

関連する問題