为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何拿到port_type的值,用for循环方法?

请问如何拿到port_type的值,用for循环方法?

四季花海 2018-12-20 14:21:15
求教怎么拿到方框里面的值?for (var i = 0; i < res.data[0].lists[0].port_types.length; i++) {    console.log(res.data[0].lists[0].port_types)}取不到啊
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

按照你提供的截图,我拼了个数据


var res = {

    data: [

        {

            lists: [

                {

                    mac: "",

                    port_types: [

                        { act: 1, port_type: 1 },

                        { act: 0, port_type: 2 },

                        { act: 1, port_type: 3 }

                    ]

                }

            ]

        }

    ]

}

在浏览器 (Chromium) 里展开结构和你给的图是一样的

https://img1.sycdn.imooc.com//5c3b27a60001750b03160535.jpg


res.data[0].lists[0].port_types 是一个列表,可以简单的用 forEach 遍历


res.data[0].lists[0].port_types.forEach(typeObj => {

    console.log(typeObj);

    // { act: 1, port_type: 1 }

    // { act: 0, port_type: 2 }

    // { act: 1, port_type: 3 }

    

    // 或

    console.log(typeObj.port_type);

    // 1

    // 2

    // 3

});

当然也可以用 for 遍历,但为了清楚明了,最好使用一个中间变量(你的代码的问题就在于输出的东西不对,不应该是 ....port_types,而应该是 ....port_types[i]):


var portTypes = res.data[0].lists[0].port_types;

for (let i = 0; i < portTypes.length; i++) {

    console.log(portTypes[i]);

    console.log(portTypes[i].port_type);

}

当然,实际上 res.data 是一个数组,其中每个元素的 list 又是一个数组,再往下的 port_types 又是一个数组,要完全遍历的话,需要三重循环


for (let i = 0; i < res.data.length; i++) {

    const lists = res.data[i].lists;

    for (let j = 0; j < lists.length; j++) {

        const portTypes = lists[j].port_types;

        for (let k = 0; k < portTypes.length; k++) {

            console.log(portTypes[k]);

            console.log(portTypes[k].port_type);

        }

    }

}


查看完整回答
反对 回复 2019-01-13
  • 1 回答
  • 0 关注
  • 569 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信