2014-02-27 131 views
0

讓我們假設我有一個JSON數組是這樣的:搜索JSON數組的特定值

var data = { 
    "cars": [ 
     { 
      "id": 2, 
      "name": "Porsche", 
      "number": "A00.0" 
     }, 
     { 
      "id": 3, 
      "name": "Audi", 
      "number": "A00.1" 
     } 
    ] 
} 

現在我想檢查我的var Carnumber = A00.1包含在data['cars'].number陣列英寸

我在編程初學者,並試圖像這樣:

$.map(data['cars'], function (field, i) { 
    if(field.nummer == CarNumber){ 
     $('p').html(field.id); 
    }; 
}); 

第一個問題是,它似乎不工作:http://jsfiddle.net/wA9kj/

其次它將如果辦法,我是很有意思我選擇的確是最快的? 謝謝!

+4

你有錯字'field.nummer'!將其設置爲'field.number' –

+2

另外,請注意代碼中沒有JSON。 (JSON是數據的_string_表示。) – nnnnnn

+3

請刪除問題,錯別字錯誤不是有用的問題,請保持 – musefan

回答

1

if(field.number == CarNumber){if(field.nummer == CarNumber){

+0

數字和數字? – rakhi4110

+0

謝謝,我真的沒有看到它 –

1
var result = Object.keys(data.cars).reduce(function (res,x) { 
    return data.cars[x].number === 'A00.1' ? data.cars[x].id : res 
}, 'object not found') 

$('p').html(result) 
1

試試這個:

<script type="text/javascript"> 

    var json_str = '{"cars":[{"id":2,"name":"Porsche","number":"A00.0"},{"id":3,"name":"Audi","number":"A00.1"}]}'; 
    var json_obj = JSON.parse(json_str); 

    function search(query) { 
     var result = ''; 
     console.log(json_obj.cars); 
     for (var i = 0; i < json_obj.cars.length; i++) { 
      if (json_obj.cars[i].number == query) { 
       result = json_obj.cars[i].id; 
       break; 
      } 
     } 
     return result; 
    } 

    var result = search('A00.1'); 

    alert(result); // returns 3 

</script> 
1

希望這有助於:

for (var i = 0; i < data.cars.length; i++) { 
    if (data.cars[i].number == CarNumber) { 
     $('p').html(data.cars[i].id); 
     return; 
    } 
}