본문 바로가기

Programming!

javascript 사용자 메스드 추가와 for in 의 문제.

javascript에서 Array에 unique 메소드 추가 후, 문제가 발생했다..

그로인한 짜증이 심해서 다음날 아침부터 팀동료들과 함께 원인 파악.

원인은 javascript 의 loop중 단순 배열의 경우는 'in' 을 사용하면 안된다.-이펙티브 자바스크립트.- 였다. 


unique의 문제라기 보다는 사내에서 사용중인 라이브러리에서의 충돌...아....여튼 해당 라이브러리에서 단순 배열을 in 방식으로 돌려지는게 있었나보다..


결론 jquery의 each를 쓰던지, i++를 쓰던지 하자.!

만들어본 테스트 :   http://jsfiddle.net/k5PRt/6/


결과 :


결과에서 보듯 for in의 경우는 'unique'가 출력된다. 





장용석이 찾아본 stackoverflow
http://stackoverflow.com/questions/500504/why-is-using-for-in-with-array-iteration-such-a-bad-idea