2012-03-28 6 views
-2

私はforループで照合する2つの配列を持っていますが、配列のforループをどのようにして動作させるかについては固執しています。予期せぬ識別子を持つループの場合

配列をjson_encodeで、次のように構築された:iに対してそれを比較しています

var bdata = {"1":["50","50","0","Player1"],"2":["1500","1000","1000","Player2"]}; 

配列は次のようにエンコードされている:

var vdata = {"uid":"1","total":"1","w":"1","t":"1","s":"1","g":"1","l":"0","upd":"0"}; 

その後、私はにそれらを変換することによってループを作成しようとしました配列が動作しません:

bdata = JSON.parse(bdata); 
vdata = JSON.parse(vdata); 
    for(bdata[0] as bid){ 
    if(vdata["w"] >= bdata[bid][1] && vdata["g"] >= bdata[bid][0] && vdata["s"] >= bdata[bid][2]){ 
document.getElementById(id).innerHTML += "<br/>"+bdata[bid][3];  
     }else{ 
document.getElementById(id).innerHTML += "<br/><font color='red'>"+bdata[bid][3]+"</font>";  
     } 
    } 

しかし、私が得るエラーは次のとおりです。予想外のidentifi er

最初の配列を正しくループしているかどうかわからないのですか?

+0

実際に達成しようとしていることはありますか? – jfriend00

+2

配列がありません。オブジェクトがあります。 JSON.parse()は文字列ではなくオブジェクトなので、JSON.parse()は必要ありません。そして、forループの構文が間違っています。 https://developer.mozilla.org/ja/JavaScript/Guide/Working_with_Objectsと[for..in](https://developer.mozilla.org/ja/JavaScript/Reference/Statements/for...in)を参照してください。 )ループ。 (申し訳ありませんが、私は適切な答えを書く時間がありません) – nnnnnn

+0

@ jfriend00は、返された2つの配列のデータをif文で比較し、比較が真か偽かによって出力します。 ifステートメントのチェックに基づいています。 – Sir

答えて

3

多くの構文エラーがあります。たとえば、

  1. ループ構文の場合。あなたが必要としない

    for (init counter; condition; post loop operation) 
    eg, 
    for (var i = 0; i < array.length; i++) 
    

    または

    大なり-または-等しいと比較演算子

    >= 
    

    ない

    => 
    
  2. for (property in collection) 
    
  3. を使用しますかを使用する、既にJSONオブジェクトがあります

+0

私はカウンターを使用できません。これは、各位置が与えられた数で始まり、パターン化された増分で始まると仮定しているためです。 – Sir

+0

@Daveあなたは私の答えを読みましたか? forループの2番目の変種を参照してください。 'for(コレクションのプロパティ)' – Phil

+1

私はそれを見ましたが、正しい文法の観点からどのように使用するのかはわかりませんが、あなたはjsfiddleの例がありますか? – Sir

関連する問題