根据某个属性的记录数进行迭代

时间:2017-03-15 12:53:01

标签: javascript jquery ajax

这是我的json

{
    "id": 1,
    "id_cartao": 100000,
    "nome": "ewgkjgewkgw",
    "email": "qgijqgqg@ewqgijkgh.pt",
    "trienio": [
        {
            "id": 1,
            "data_trienio": "2013-2016",
            "curso_id": 5,
            "oe_id": 1,
            "curso": {
                "id": 5,
                "curso": "TGEI"
            }
        },
        {
            "id": 2,
            "data_trienio": "2014-2017",
            "curso_id": 5,
            "oe_id": 1,
            "curso": {
                "id": 5,
                "curso": "TGEI"
            }
        }
    ]
}

例如:有两个data_trienio记录(2013-2016和2014-2017),并且我正在设法获取它们,但是每个代码将循环5次,因为trienio数组中有5个属性,所以它分别打印2013-2016和2014年,5次。

如何根据data_trienio记录的实际数量进行循环?我还想为每个data_trienio记录打印相应的curso.curso(tgei)

提前感谢,并提供我的实际代码

            $.get('/admin/gerir/oe/getTrienio/' + id_cartao, function(data) {
                $.each(data.trienio, function(i, e) {
                    $.each(e, function(ind, elem) {
                        console.log(e['curso']['curso']);
                        console.log(e['data_trienio']);
                    });
                });
            });

3 个答案:

答案 0 :(得分:0)

你不必第二次循环,一个循环就足够了:



var data = {
    "id": 1,
    "id_cartao": 100000,
    "nome": "ewgkjgewkgw",
    "email": "qgijqgqg@ewqgijkgh.pt",
    "trienio": [
        {
            "id": 1,
            "data_trienio": "2013-2016",
            "curso_id": 5,
            "oe_id": 1,
            "curso": {
                "id": 5,
                "curso": "TGEI"
            }
        },
        {
            "id": 2,
            "data_trienio": "2014-2017",
            "curso_id": 5,
            "oe_id": 1,
            "curso": {
                "id": 5,
                "curso": "TGEI"
            }
        }
    ]
};

$.each(data.trienio, function(i, e) {
    console.log("data_trienio : "+e['data_trienio']);
    console.log("curso : "+e['curso']['curso']);    
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你不需要内循环,我会使用类似的东西:

$.get('/admin/gerir/oe/getTrienio/' + id_cartao, function ( data ) {
   for ( var i in data.trienio ) {
       // Just access your properties in here e.g: 
       console.log( data.trienio[i].id );
   }
});

答案 2 :(得分:0)

嘿,你只能使用像这样的循环来循环一次

 $.get('js/test.json', function(data) {
      $.each(data.trienio,function(i,e){
            console.log(data.trienio[i]['curso']['curso']);
            console.log(data.trienio[i]['data_trienio']);
      });
 });