在json数组中搜索特定值

时间:2014-02-27 13:20:37

标签: javascript jquery

假设我有一个像这样的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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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)

答案 2 :(得分: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>

答案 3 :(得分:1)

希望这会有所帮助:

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