var cat = [ { "name":"aHei", "color":"black" }, { "name":"aHuang", "color":"yellow" }, { "name":"aBai", "color":"white", "sex":"man" } ]; //如何console出如上格式的所有数据啊?
var ele; for(ele in cat){ document.write(cat[ele].name +" " + cat[ele].color +" " + cat[ele].sex + "<br>"); //有undefined,怎么写才能没undefined
for(ele in cat){ document.write((cat[ele].name || '') +" " + (cat[ele].color || '') +" " + (cat[ele].sex || '') + "<br>"); }
判空。
问题解决... ...
如果我有1000条数据,每条判空,是不是还得变变。。?
如有嵌套,嵌套... ...可能就是一个通用遍历复杂数组数据的方法或函数。
@Coca-code: 这个就跟你的设计有关了,不推荐一个数组放置各种不同类型的数据。如果你不关心属性顺序的话,你可以在这个for in之中,再嵌套一个for in,达到直接遍历已有属性的目的。
@幻天芒:
这个界面我写,js另一个同事些的。
出现'undefined'是由于前面两个没有'sex'属性。
要想不输出'undefined',在输出时判断'sex'属性是否定义就可以了。
var cat = [ { "name":"aHei", "color":"black" }, { "name":"aHuang", "color":"yellow" }, { "name":"aBai", "color":"white", "sex":"man" } ]; if(cat.name || cat.color || cat.sex){ var i; for(i in cat){ document.write(cat[i].name +" " + cat[i].color +" " + cat[i].sex); } }; //这也没输出啊~?