假设我有一个像这样的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/
第二,如果我选择的方式真的是最快的话,对我来说会很有趣吗? 谢谢!
答案 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;
}
}