想判断对象中的数组中的length都为0

呆头呆脑
  • 137

通过AJAX传递数据,后台返回的数据差不多这样
{"data": [{"name": "Jack","age": 18,"time": []},

      {"name": "Rose","age": 20,"time": []},
      {"name": "Joy","age": 21,"time": []}],

"msg":null,
"resule":true
}
我现在要判断其中的time,如果所有time的length都为0,就在页面中显示“没有匹配数据”,如果任意一个time里有数据,都把数据显示出来,请问怎么判断啊

回复
阅读 3.1k
5 个回答
✓ 已被采纳
var show=data.some(function(item,index,array){
  return item.time.length;
});

只要有一个time有数据,show就为true;否则false.

for(var i=0;i<data.length;i++){

var person=new arry();  
person=data[i];
for(var x=0;x<person.length;x++){
    if(person[2].value==""){
        person[2].value="没有匹配数据";
    }
}

}
试试看吧。

  var flag = false
    
  for(var i=0;i<data.length;i++){    
    var item = data[i]
    var item_time = item.time
    //有数据
    if(item_time.length){    
        flag = true
    }
  }
  
  alert(flag)
// 暂且你需要的数据格式是'am=8,pm=9'这种吧
data.data.map(function(v) {
  if(v.time.length) {
    var time = v.time;
    return time.map(function(t) {
         return 'am='+t.am+',pm='+t.pm
    }).join('');
  }
}).join('') || '没有匹配数据';

最后还是自己循环解决了,获取time的length,push进一个自己定义的数组中,最后判断数组中的数字sum是否等于0,如果是就返回true,否则就false

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏