javascript - js接收变量
本文介绍了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屋!
查看全文