reverse() 함수는
배열의 요소 순서를 역순(reverse)으로 정렬하는 함수입니다.
즉, 첫 번째 요소는 마지막 요소가 되고 마지막 요소는 첫 번째 요소가 됩니다.
reverse() 함수는 원본 배열을 직접 수정하며, 새로운 배열을 반환하지 않습니다.
구문
arr.reverse()
arr은 reverse() 함수를 적용할 원본 배열입니다.
매개변수는 없습니다.
const arr = [1, 2, 3, 4, 5];
const reversedArr = arr.reverse();
/* 배열의 요소 순서를 역순으로 정렬 */
console.log(reversedArr);
// [5, 4, 3, 2, 1]
/* 원본 배열을 직접 수정 */
console.log(arr);
// [5, 4, 3, 2, 1]
reverse() 함수는 기존 원본 배열을 직접 수정합니다.
즉, reverse() 함수를 호출하면 호출한 원본 배열 자체가 역순으로 변경되며, 새로운 배열이나 복사본이
생성되지 않습니다. 따라서 이 함수를 사용하는 경우 원본 배열이 변경된다는 것을 알아야 합니다.
만약 원본 배열을 변경하고 동시에 원본 배열을 유지하고 싶다면, 복사본을 만들어서 reverse()를 적용하거나
toReversed() 함수를 사용해야 합니다.
const originalArray = [1, 2, 3, 4, 5];
// 원본 배열의 복사본을 생성
const copiedArray = originalArray.slice();
// 복사본에 reverse() 함수를 적용
copiedArray.reverse();
console.log(originalArray);
// [1, 2, 3, 4, 5] (원본 배열은 변경되지 않음)
console.log(copiedArray);
// [5, 4, 3, 2, 1] (역순으로 된 배열)
const originalArray = [1, 2, 3, 4, 5];
// 스프레드(...) 문법을 사용해서 원본 배열 복사
const copiedArray = [...originalArray];
// 복사본에 reverse() 함수를 적용
copiedArray.reverse();
console.log(originalArray);
// [1, 2, 3, 4, 5] (원본 배열은 변경되지 않음)
console.log(copiedArray);
// [5, 4, 3, 2, 1] (역순으로 된 배열)
toReversed() 함수 사용하기
toReversed() 함수는 reverse() 함수와 모든 기능이 동일하지만 원본 배열을 변경하지 않습니다.
toReversed() 함수는 reverse() 함수의 단점을 보완하기 위해 2023년도에 도입되었습니다.
이전에는 reverse() 함수만 사용하여 배열의 요소 순서를 역순으로 정렬할 수 있었습니다.
reverse() 함수는 원본 배열을 변경하기 때문에 원본 배열의 요소를 유지해야 하는 경우 사용할 수 없습니다.
toReversed() 함수는 새 배열을 생성하여 요소를 변경하기 때문에 이러한 문제를 해결할 수 있습니다.
const originalArray = [1, 2, 3, 4, 5];
/* 배열의 요소 순서를 역순으로 정렬 */
const reversedArray = originalArray.toReversed();
console.log(reversedArray);
// [5, 4, 3, 2, 1] (역순으로 된 배열)
/* 원본 배열은 바뀌지 않습니다. */
console.log(originalArray);
// [1, 2, 3, 4, 5]
활용 사례
● 순서 반전 후 반복
const numbers = [1, 2, 3, 4, 5];
// 배열 순서를 역순으로 변경하고 각 요소 출력
numbers.reverse().forEach(number => {
console.log(number);
});
// 5, 4, 3, 2, 1
● 문자열 뒤집기
const str = 'Hello, Angela!';
// 문자열을 배열로 변환하고 역순으로 변경한 후 다시 문자열로 조립
const reversedStr = str.split('').reverse().join('');
console.log(reversedStr);
// '!alegnA ,olleH'
● 역순으로 필터링
const numbers = [1, 2, 3, 4, 5];
// 배열을 역순으로 변경하고 특정 조건을 만족하는 요소만 필터링
const filteredNumbers = numbers.reverse().filter(number => number % 2 === 0);
console.log(filteredNumbers);
// [4, 2]
'IT 개발' 카테고리의 다른 글
[JavaScript] 자바스크립트 trim (2) | 2025.01.21 |
---|---|
[JavaScript] 자바스크립트 length (2) | 2025.01.20 |
[JavaScript] 자바스크립트 includes (3) | 2025.01.18 |
[JavaScript] 자바스크립트 find (3) | 2025.01.17 |
[JavaScript] 자바스크립트 filter (2) | 2025.01.16 |