사용자는 어떤 결과를 보게 될까요? 실제로 사용자가 봐야 할 올바른 결과는 무엇일까요? 근속 연수로 두 번째 정렬을 하고 나면 처음과는 전혀 다른 결과가 나옵니다.
arrays/sort/sortMutate.js
staff.sort(sortByYears); // [ // { // name: 'Theo', // years: 5 // }, // { // name: 'Dyan', // years: 10 // }, // { // name: 'Joe', // years: 10 // }, // ]
단순한 예제입니다. 이제 수백 명의 직원 목록에서 근속 연수가 동일한 직원이 여럿 있는 경우를 생각해봅시다. 사용자가 정렬 버튼을 누를 때마다 조금씩 순서가 바뀝니다.
매번 순서가 바뀐다면 사용자는 애플리케이션을 신뢰하지 못할 것입니다. 또한, 우리가 원한 결과도 아니지요. 조작이 이렇게 큰 영향을 끼칠 수 있습니다.