JavaScript
Array.join(' ') 의 길이가 배열 길이보다 1이 작은 이유
LaKinRad
2022. 5. 16. 17:06
11자리의 고객 번호를 입력했을 때, 앞의 5개의 자리가 0으로 채워지도록 하는 비교적 간단한 요청 사항이 있었다.
코드를 이런 식으로 짜니 고객이 조회되지 않아 확인해보니, 0이 하나 빠져있었다.
왜 이렇게 되는지 이해가 잘 안 가서 콘솔에 직접 쳐보기도 하고, 찾아보기도 했는데
의외로 간단하게 의문을 해소할 수 있었다.
join() 은 배열의 모든 요소들을 연결해서 하나의 문자열을 만드는 메소드이고,
join() 안에 오는 '0'은 fill() 처럼 채워준다는 것이 아니라 그저 배열의 각 요소들을 구분시켜줄 지정 기호일 뿐이다.
결국 5개의 비어있는 요소 사이에 0이 들어가니까 0이 4개가 되고,
비어있는 요소들은 undefined 이기 때문에 빈 문자열로 반환되어 길이가 4가 되는 것이었다.
join() 을 fill() 처럼 사용하려다 보니 나왔던 오해였다.