javascript - js接收变量

查看:145
本文介绍了javascript - js接收变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var arr={

        defPrice:0.02,
        speList:[
            {
                pname:'规格',
                pid:67,
                subLs:[
                    {name:'大份',
                        pname:'规格',
                        isDef:1,
                        pid:67,
                        spid:67,
                        sid:68
                    },{sname:'中份',
                        pname:'规格',
                        pid:67,
                        spid:67,
                        sid:69
                    },{sname:'小份',
                        pname:'规格',
                        pid:67,
                        spid:67,
                        sid:70
                    },{sname:'特大份',
                        pname:'规格',
                        pid:67,
                        spid:67,
                        sid:83
                    }
                ]
            },{
                pname:'颜色',
                pid:71,
                subLs:[{
                        sname:'黄色',
                        pname:'颜色',
                        isDef:1,
                        pid:71,
                        spid:71,
                        sid:72
                    },{
                        sname:'黑色',
                        pname:'颜色',
                        pid:71,
                        spid:71,
                        sid:84
                    },{
                        sname:'白色',
                        pname:'颜色',
                        pid:71,
                        spid:71,
                        sid:85
                    }
                ]
            },{
                pname:'大小',
                pid:71,
                subLs:[{
                        sname:'大',
                        pname:'颜色',
                        isDef:1,
                        pid:71,
                        spid:71,
                        sid:72
                    }
                ]
            }
        ]
    }
    var diOne,diTwo,diThree
    for(var i=0;i<arr.speList.length;i++){
        for(var j=0;j<arr.speList[i].subLs.length;j++){
            if(arr.speList[0]!=undefined){
                diOne = arr.speList[0].subLs[j].isDef;
                console.log(diOne)
            }
            if(arr.speList[1]!=undefined){
                diTwo = arr.speList[1].subLs[j].isDef;
            }
            console.log(arr.speList[2])
            if(arr.speList[2]!=undefined){
                diThree = arr.speList[2].subLs[j].isDef;
                console.log(diThree)
            }
        }
    }

请问js怎么接收数组中的变量,为什么我到第二个的时候会报isDef为undefined?

解决方案

 subLs:[
    {name:'大份',
        pname:'规格',
        **isDef:1,**
        pid:67,
        spid:67,
        sid:68
    },{sname:'中份',
        pname:'规格',
        pid:67,
        spid:67,
        sid:69
        ....

很明显,第二个对象里面没有isDef这个属性,你取这个属性,肯定是undefined啦,尝试一下下面的代码看看

var isDefArr = [];
for(var i=0;i<arr.speList.length;i++){
    for(var j=0;j<arr.speList[i].subLs.length;j++){
        if(arr.speList[i].subLs[j].isDef){
            isDefArr.push(arr.speList[i].subLs[j].isDef);
            console.log(arr.speList[i].subLs[j].isDef)
        }
    }
}

这篇关于javascript - js接收变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆