사용해야 할 메서드가 원본을 조작할 때, 어떻게 하면 조작을 막을 수 있을까요? 답은 간단합니다. 원본 데이터를 조작하지 않으면 됩니다. 그 대신에 사본을 만들고, 사본을 조작하세요.
배열을 정렬하기 전에 원본 배열과 펼침 연산자로 새로운 배열을 만들기만 하면 됩니다.
arrays/sort/sortSpread.js
[...staff].sort(sortByYears); // [ // { // name: 'Theo', // years: 5 // }, // { // name: 'Joe', // years: 10 // }, // { // name: 'Dyan', // years: 10 // }, // ]
원본 배열을 변경하지 않으므로 이제 사용자는 마음대로 정렬 기능을 사용할 수 있습니다. 또한, 같은 기준으로 정렬했을 때 항상 같은 결과를 확인할 수 있습니다.