2013-11-09 3 views
1

길이가 300 인 계절 배열이라는 개체 배열이 있는데 특정 속성 인 "날짜"를 검색하고 배열을 찾지 못하면 배열에 추가하려고합니다. 지금까지 내가 가지고있다배열에 고유 요소 추가

var day=[]; 
for (var i=1; i<300; i++) { 
    var found=false; 
    for (var j=0; j<day.length; j++) { 
     if (day[j]==seasons[i]["Date"]) { 
      found=true; 
      break; 
     } 
     if (!found) { 
      day[day.length]=seasons[i]["Date"]; 
     } 
    } 
} 

나는 이것이 어디에서 잘못되고 있는지 알지 못하고 도움이된다. 감사합니다

답변

1

break 내부 루프를 벗어나서 if (!found) 블록이 실행되지 않습니다.

그냥 내부 루프 후에 넣어 :

for (var i = 1; i < 300; i++) { 
    var found = false; 
    for (var j = 0; j < day.length; j++) { 
     if (day[j] == seasons[i]["Date"]) { 
      found = true; 
      break; 
     } 
    } 
    if (!found) { 
     day[day.length] = seasons[i]["Date"]; 
    } 
} 

를 또는 그것을 수행하는 경우 블록 : 나는 후자의 솔루션은 이해하기 쉽게 추측

for (var i = 1; i < 300; i++) { 
    for (var j = 0; j < day.length; j++) { 
     if (day[j] == seasons[i]["Date"]) { 
      day[day.length] = seasons[i]["Date"]; 
      break; 
     } 
    } 
} 

.

+1

@ user10319 또한 'day [day.length] = seasons [i] [ "Date"];를'day.push (seasons [i] [ "Date"]); '로 대체 할 수 있습니다. 작고 읽기 쉽기 때문에 작습니다. – leaf

+0

고맙습니다, 지금 일하는 것 같습니다. – user10319