자바스크립트에서 배열의 마지막 값에 접근하여 가져오는 방법을 소개합니다. 첫번째로 length를 이용하여 마지막 인덱스에 접근하는 방법과 두번째로 slice를 이용하여 마지막 요소에 접근하는 방법이 있습니다. 세번째로 신규 메소드인 at()을 사용하는 방법이 있고, 마지막으로 pop()으로 배열에서 요소를 제거하고 값을 읽는 방법이 있습니다.
1. 'Array.length - 1'으로 배열의 마지막 요소 접근
일반적으로 배열의 요소에 접근할 때는 아래와 같이 Index로 접근합니다. Index는 0부터 시작하며, 아래 예제에서 배열의 마지막 요소에 접근하려면 arr[3]처럼 접근할 수 있습니다.
const arr = ['apple', 'kiwi', 'grape', 'mango'];
console.log(arr[0]); // apple
console.log(arr[1]); // kiwi
console.log(arr[2]); // grape
console.log(arr[3]); // mango하지만 배열을 정의할 때마다 길이는 달라질 수 있기 때문에 고정된 정수로 마지막 요소에 접근하면 안됩니다. 아래와 같이 배열의 길이(length)에서 1을 뺀 값이 항상 배열 마지막 요소의 Index가 되기 때문에 이렇게 마지막 요소를 가져오면 됩니다.
const arr = ['apple', 'kiwi', 'grape', 'mango'];
let last = arr[arr.length - 1];
console.log(last);Output:
mango2. 'Array.slice(-1)[0]'으로 배열의 마지막 요소 접근
slice()는 배열의 특정 구간을 자를 때 사용하는 함수입니다. slice(-1)은 배열의 마지막 Index에서, 배열의 마지막까지 범위에 해당하는 요소들을 잘라서 배열로 리턴합니다.
const arr = ['apple', 'kiwi', 'grape', 'mango'];
console.log(arr.slice(-1));위 코드 실행 결과를 보면 배열에 마지막 요소만 포함되었습니다.
[ 'mango' ]slice(-1)는 마지막 요소만 있는 배열을 리턴하기 때문에, 배열에서 요소만 가져오려면 아래와 같이 slice(-1)[0]으로 가져오면 됩니다.
const arr = ['apple', 'kiwi', 'grape', 'mango'];
let last = arr.slice(-1)[0];
console.log(last);Output:
mangoslice에 대한 자세한 내용은 JavaScript - substring()과 slice()의 차이점 또는 JavaScript - 문자열 자르기 (split, substr, substring, slice) 문서를 참고해주세요.
3. Array.at()으로 배열의 마지막 요소 접근
Array.at()이라는 새로운 함수가 있는데, at(-1)은 마지막에서 첫번째 요소에 접근하고, at(-2)는 마지막에서 두번째 요소에 접근합니다.
신규 함수이기 때문에 호환성 문제가 생길 수 있습니다. 지원하는 브라우저는 Chrome 92, FireFox 90 이상 버전에서 지원합니다. 지원하는 자세한 브라우저 정보는 developer.mozilla.org - Array.at()에서 확인하시면 됩니다.
const colors = ['red', 'green', 'blue'];
const atWay = colors.at(-1);
console.log(atWay); // 'blue'
const atWay = colors.at(-2);
console.log(atWay); // 'green'4. Array.pop()으로 배열의 마지막 요소 가져오기
Array.pop()은 배열에서 마지막 요소를 삭제하고, 그 값을 리턴합니다. 위의 방법들은 배열에서 마지막 요소를 삭제하지 않고, 단순히 접근하여 요소 값을 가져왔는데요. pop()은 배열에서 삭제된다는 차이점이 있습니다.
const arr = ['apple', 'kiwi', 'grape', 'mango'];
let last = arr.pop();
console.log(last);
console.log(arr);Output:
mango
[ 'apple', 'kiwi', 'grape' ]Related Posts
- ESLint warning, Expected '===' and instead saw '==' eqeqeq
- Javascript - 현재 날짜/시간을 항상 한국 기준으로 가져오기
- Javascript - 문자열 사이에 문자 넣기
- Javascript - 버튼 활성화/비활성화 시키는 방법
- Javascript - 버튼 이름 변경하기
- Javascript - div 안의 내용 가져오기, 변경, 추가, 삭제
- Javascript - <ol>, <ul>에 <li> 동적 추가, 삭제
- Javascript - div 생성, 추가, 삭제 방법
- Javascript - 테이블 행(tr) 숨기기, 보이기
- Javascript - div에 링크 거는 방법
- Javascript - 자식 요소(element) 개수 확인
- Javascript - 요소(element) 복사, 붙여넣기
- Javascript - div에 클릭 이벤트(onclick) 설정 방법
- Javascript - 체크박스 선택/해제 시, 텍스트박스 활성화/비활성화
- Javascript - input 숫자만 입력받도록 설정
- Javascript - 자식 노드 모두 제거
- Javascript - 체크박스 선택, 해제 방법
- Javascript - input text 값 가져오기
- JavaScript - 문자열을 배열(Array)로 변환
- JavaScript - 특정 문자열의 포함 여부 확인 (includes, 정규표현식)
- JavaScript - 문자열 비교 방법, 5가지
- JavaScript - 문자열 바꾸기(replace, 정규식 치환)
- JavaScript - 배열 전체 출력 (for, forEach, for in, for of)
- JavaScript - 한번만 실행되는 함수 (once: true)
- JavaScript - 선택된 checkbox 값 가져오기
- JavaScript - div, 태그 안의 내용 가져오기
- JavaScript - element(버튼, div) 보이기 숨기기
- JavaScript - 숫자를 배열로 변경하는 방법
- JavaScript - 부모, 형제, 자식 element 찾기
- JavaScript - 클래스 이름으로 element 찾는 방법
- JavaScript Array find() 함수
- JavaScript Array splice() 함수
- JavaScript의 contains() 함수
- JavaScript sort() 함수, 예제 소개
- JavaScript - Set 생성 및 초기화