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?
很明显,第二个对象里面没有isDef这个属性,你取这个属性,肯定是undefined啦,尝试一下下面的代码看看