循环遍历一个对象数组并检查它的属性

时间:2017-05-26 21:12:42

标签: html5 angular typescript ionic2

我有一个分配给in_timings变量的对象数组。我想检查对象的某些条件,以便为执行做准备。 我不知道我做错了什么,但循环似乎是在我没想到的块上执行。

in_timings:TimeInModel[];
    ...........
fetchTimeIns(){
this.employeesService.getTimeIn()
.subscribe(result=>this.in_timings = result,
error => this.errorMessage = <any>error);
 }
  .......................
  ...............

      for(let in_timing of this.in_timings)
  {
      if(in_timing.employee_id===emp_id && in_timing.is_active===true){   

      console.log("You have already checked in!");

    }
     else if((in_timing.employee_id===emp_id && in_timing.is_active===false) || this.in_timings.length<0){

       console.log("Add another row here...");

     }
    else{
      console.log("All conditions exhausted!");
    }
  }

在图像中,它显示第一个语句已执行,最后一个语句执行两次。

enter image description here 我已记录对象数组以显示结构。

1 个答案:

答案 0 :(得分:0)

就我理解你的问题而言,如果任何一个条件成立,你想break执行。这样做会使您的代码只运行一个块。

只需在日志后添加break关键字。

  for(let in_timing of this.in_timings)
  {
  if(in_timing.employee_id===emp_id && in_timing.is_active===true){   

  console.log("You have already checked in!");
   break;

}
 else if((in_timing.employee_id===emp_id && in_timing.is_active===false) || this.in_timings.length<0){

   console.log("Add another row here...");
   break;

 }
else{
  console.log("All conditions exhausted!");
   break;
}