2017-04-19 7 views
0

나는 anglejs에서 아래의 코드를 가지고있다.하지만 나의 배열 0의 길이를 원하는대로 정의하지 않았다면 코드가 아래 코드를 확인하면 내 두 번째 루프가 실행되지 않는다. 해결하는 방법 각도에서 문제를 사람의이 유형은 제발 도와길이 때문에 두 번째 루프가 실행되지 않았기 때문에 angularjs에서 길이를 얻는 방법

 this.current_engineer = response.data; 
       var current_schedules = this.current.schedule; 
       console.log(current_schedules); 
       console.log(current_schedules.length); 
       console.log(current_schedules[0].length); 

      if (angular.isArray(current_schedules)) { 
       for (var j = 0; j < current_schedules.length; j++) { 

       for (var i = 0; i < current_schedules[j].length; i++) //this loop does not run because of length how to get length 
    { 
       console.log(current_schedules[j][i].title); 

       } 
       } 
      } 
///------------Mongodb Database----------------------- 
"schedule" : [ 
     [ 
      { 
       "_id" : ObjectId("58f76aa9be4d311a78f24f78"), 
       "sch_end" : ISODate("2017-04-21T00:00:00.000Z"), 
       "sch_start" : ISODate("2017-04-21T00:00:00.000Z"), 
       "available" : false, 
       "title" : "test3" 
      }, 
      { 
       "_id" : ObjectId("58f76aa9be4d311a78f24f77"), 
       "sch_end" : ISODate("2017-04-22T00:00:00.000Z"), 
       "sch_start" : ISODate("2017-04-22T00:00:00.000Z"), 
       "available" : false, 
       "title" : "test4" 
      }, 
      { 
       "_id" : ObjectId("58f76aa9be4d311a78f24f76"), 
       "sch_end" : ISODate("2017-04-23T00:00:00.000Z"), 
       "sch_start" : ISODate("2017-04-23T00:00:00.000Z"), 
       "available" : false, 
       "title" : "test6" 
      } 
     ], 
     [ 
      { 
       "_id" : ObjectId("58f76aa9be4d311a78f24f78"), 
       "sch_end" : ISODate("2017-04-24T00:00:00.000Z"), 
       "sch_start" : ISODate("2017-04-24T00:00:00.000Z"), 
       "available" : false, 
       "title" : "test9" 
      }, 
      { 
       "_id" : ObjectId("58f76aa9be4d311a78f24f77"), 
       "sch_end" : ISODate("2017-04-25T00:00:00.000Z"), 
       "sch_start" : ISODate("2017-04-25T00:00:00.000Z"), 
       "available" : false, 
       "title" : "test10" 
      }, 
      { 
       "_id" : ObjectId("58f76aa9be4d311a78f24f76"), 
       "sch_end" : ISODate("2017-04-27T00:00:00.000Z"), 
       "sch_start" : ISODate("2017-04-27T00:00:00.000Z"), 
       "available" : false, 
       "title" : "test11" 
      } 
     ] 
    ], 

enter image description here

+0

'current_schedules [0] .length'에서 속성 값이 js 개체이고 js 개체가'length' 속성이 없습니다. 'Object.keys (current_schedules [0]). length'와 같은 것을 사용할 수 있습니다. – Gaurav

+0

아니요, 그는 분명히 배열 배열을 가지고 있습니다 : [[{{...}, {...}, {...}], [{...}, {...}, {...} ]]' – Leguest

+1

@Leguest OP가 사전에 데이터의 사전 필터링을 수행하고 있는지 여부는 알 수 없습니다. 그러나'console.log'를 보면 분명히 저에게 Object와 닮았습니다. – Gaurav

답변

3

current_schedules[0]에서 귀하의 속성 값은 JS 객체이며, JS 객체의 길이라는 모든 속성이 없습니다. Object.keys(current_schedules[0]).length과 같은 것을 사용할 수 있습니다.

참고 : IE9 이상 및 기타 모든 최신 ES5 + 지원 브라우저의 경우.

+0

코드 예제가 잘못되었습니다, 덤프의 스크린 샷을보세요 –

+0

안녕하세요 @ gaurav 당신의 제안은 작동하지만 0 레벨 배열은 여기에 2 배열을 가지고 확인하시기 바랍니다 ... console.log (Object .keys (current_schedules [0]). length);if (angular.isArray (current_schedules)) {(var j = 0; j