首页新闻找找看学习计划

JavaScript代码的小小疑问(56)

0
[已解决问题] 解决于 2015-10-23 09:27
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
Coca-code的主页 Coca-code | 初学一级 | 园豆:9
提问于:2015-10-22 21:20
< >
分享
最佳答案
0
for(ele in cat){
  document.write((cat[ele].name || '') +"    " + (cat[ele].color || '') +"    " + (cat[ele].sex || '') + "<br>"); 
}

判空。

奖励园豆:5
幻天芒 | 高人七级 |园豆:36522 | 2015-10-23 08:58

问题解决... ...

如果我有1000条数据,每条判空,是不是还得变变。。?

Coca-code | 园豆:9 (初学一级) | 2015-10-23 09:33

如有嵌套,嵌套... ...可能就是一个通用遍历复杂数组数据的方法或函数。

Coca-code | 园豆:9 (初学一级) | 2015-10-23 09:35

@Coca-code: 这个就跟你的设计有关了,不推荐一个数组放置各种不同类型的数据。如果你不关心属性顺序的话,你可以在这个for in之中,再嵌套一个for in,达到直接遍历已有属性的目的。

幻天芒 | 园豆:36522 (高人七级) | 2015-10-23 10:18

@幻天芒: 

这个界面我写,js另一个同事些的。

Coca-code | 园豆:9 (初学一级) | 2015-10-23 20:37
其他回答(1)
0

出现'undefined'是由于前面两个没有'sex'属性。

要想不输出'undefined',在输出时判断'sex'属性是否定义就可以了。

seayxu | 园豆:5468 (大侠五级) | 2015-10-22 21:52
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);
        }
     };  //这也没输出啊~?

 

支持(0) 反对(0) Coca-code | 园豆:9 (初学一级) | 2015-10-22 22:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册