더북(TheBook)

배열의 요소 수정하기

배열 맨 앞에 요소를 추가하는 예제를 살펴볼 때 우연히 요소를 수정하는 방법을 알게 됐었죠? 다음처럼 원하는 인덱스에 바꿀 값을 넣으면 됩니다.

const target = ['가', '나', '다', '라', '마']; 
target[3] = '카';
target; // (5) ['가', '나', '다', '카', '마']

네 번째 요소(인덱스 3)를 ‘라’에서 ‘카’로 수정했습니다. 그런데 배열의 마지막 요소를 수정할 때는 주의해야 합니다. 앞에서 마지막 요소를 찾을 때 at(-1)을 사용했습니다. 이와 마찬가지로 마지막 요소이니 target.at(-1) = '카'라고 생각할 수 있는데, 이렇게 작성하면 Uncaught ReferenceError: Invalid left-hand side in assignment 에러가 발생합니다. 배열의 마지막 요소를 ‘마’에서 ‘카’로 수정하고 싶다면 다음과 같이 해야 합니다.

const target = ['가', '나', '다', '라', '마']; 
target[target.length - 1] = '카';
target; // (5) ['가', '나', '다', '라', '카']

at()은 위치가 아닌 값을 나타냅니다. 따라서 target.at(-1)은 ‘마’입니다. 즉, target.at(-1) = '카''마' = '카'라는 엉뚱한 식이 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.