var heightChecker = function(heights) {
const expected = [...heights].sort((a,b) => a-b)
return expected.reduce((acc, cur, idx) => cur !== heights[idx] ? acc + 1 : acc, 0)
};
문제가 원하는 것은 다음과 같다.
수로 이루어진 배열이 주어질때 이 배열을 오름차순으로 정렬했을때 위치(인덱스)가 변하는 요소의 개수를 구하는 것이다.
1. sort 메소드를 사용해서 원본 배열을 오름차순으로 정렬한다. 이때 원본 배열을 보존해야하므로 복사 후 정렬한다.
2. reduce 메소드를 사용해서 원본 배열과 정렬 배열의 특정 인덱스의 값(수)가 다른 경우를 카운트한다.