2012-04-08 16 views
2

私はこのJSONを持っている:別の指定された値と一致するJSONオブジェクトのキー値を取得する方法は?

var projects_array = new Array(
{name:"myName1", id:"myid1", index:1}, 
{name:"myName2", id:"myid2", index:2}, 
{name:"myName3", id:"myid3", index:3}, 

); 

私は特定の「ID」の値に一致するオブジェクトの「インデックス」の値を取得する必要があります。だから私の "id"が "myid1"ならば、yは "1"になります。ここ

私のコードの一部です:

var myid = $(this).attr('id'); //this is the id value 

projects_array.map(function (proj) { 
    if (proj.id == myid) { 
     return proj // returns Undefined 
    } 
    }); 

最後に、私は後でそれを使用する変数にその値を割り当てる必要があり、THANKS :)

+2

コードのヒント: 'new Array()'を使用しないでください。代わりに、配列リテラルを使用してください: '[1、2、3]' – Ryan

+0

@minitech、私は前からこのアドバイスを受けていますが、なぜ、 –

+1

@SheikhHeera:それはもっと短く、より効率的で、標準です。人々は、配列が何かを意味することを意味するために 'Array'を置き換えることができます。さらに、 'new Array(5)'は '[5]'ではなく '[,,,,]'を与えてくれるという事実があります。 – Ryan

答えて

3

は、私はあなたが成功したインデックスを選択していると思います値を返すときには、新しい配列に移動します(必要に応じてマップされます)。

var myproj; 
var myindex; 
projects_array.map(function (proj) { 
    if (proj.id == myid) { 
     myproj = proj; 
     myindex = proj.index; 
    } 
}); 
+0

これは完璧に働いてくれました。ありがとうございました:)本当にすべての回答とヒントに感謝します! – lilymz

関連する問題