2012-08-23 25 views
0

我有一個JSON對象,其中包含名稱和值的數組的字符串。給定一個數組中的字符串,我如何找到它所屬的名稱?如何使用jQuery將值與JSON對象中的名稱進行匹配?

例如:給定以下JSON對象,如果給定字符串「4」時給定字符串「1」或「G2」,如何使用jQuery獲得答案「G1」?

{ 
    "G1": [ "1" , "2" ], 
    "G2": [ "3" , "4" ] 
} 

我做了一個用的jsfiddle我目前的工作:http://jsfiddle.net/JmX6b/

回答

3
var result; 
for (var key in json) { 
    if (json[key].indexOf(input) != -1) { 
    result = key; 
    break; 
    } 
} 
+0

需要IE版本'Array.indexOf'墊片低於8這裏的酮](http://www.tutorialspoint.com/的JavaScript/array_indexof.htm)。由於該問題標記爲jQuery,如果不需要填充,可以使用[$ .inArray](http://api.jquery.com/jQuery.inArray/)代替。 –

+0

@DavidHedlund是的,那是真的。 – xdazz

0

您可以在對象中的所有鍵遍歷與for ... in。從那裏,你可以迭代每個項目。如果您找到合適的條目,只需輸出您當前所在的密鑰即可。

$("button").click(function() { 

    var input = $("input").val(); 

    for(key in json) { 
     for(var i = 0, l < json[key].length; i < l; i++) { 
      if(json[key][i] == input) { 
      $('code').html(key); 
      return; 
      } 
     } 
    } 

    $('code').html('Item not found'); 

); 
相關問題