⭐️ 실습 전 브라우저를 업데이트하세요!
1. 부작용을 제거한 메서드들
- 원본 배열의 내용을 수정하지 않음
- 함수형 패러다임의 기조를 따름
toSorted
: 정렬된 결과를 반환
const array0 = [3, 1, 4, 5, 2];
array0.sort(); // 메서드 호출이 부작용을 유발
console.log(array0);
const array1 = [3, 1, 4, 5, 2];
const array2 = [...array1];
console.log(array1, array2);
const array1Sorted = array1.sort(); // 새 배열 반환이 아닌 레퍼런스 복사
const array2Sorted = array2.toSorted();
console.log(array1Sorted, array2Sorted);
array1Sorted.push(6);
array2Sorted.push(6);
console.log(array1Sorted, array2Sorted);
console.log(array1, array2);
// es14 전에는...
array3 = [3, 1, 4, 5, 2];
array3Sorted = [...array3].sort(); // 이제는 이렇게 할 필요 없음
console.log(array3, array3Sorted);
array4 = [3, 6, 1, 10, 4, 8, 7, 5, 9, 2];
// 역시 고차함수 - 콜백함수를 받음
array4Sorted = array4.toSorted((a, b) => a % 2 - b % 2);
console.log(array4, array4Sorted);