Today I Learned
sort()
자바스크립트에서 배열이나 객체를 정렬할때 쓰인다.
UTF-16 유니코드로 정렬한다.
즉, [1,10,2,3] 을 정렬하면
문자열로 바꿔서 정렬학 때문에
[1,2,3,10] 이 아니라 [1,10,2,3] 그대로 나온다.
sort인자에 compareFunction을 쓰면
의도한대로 나온다.
sort인자의 함수의 파라미터 리턴 값을
return a-b
라고 하면 오름차순,
return b-a
라고 하면 내림차순이다.
그 이유는
이런식으로 내림차순,오름차순 정렬과 객체도 가지고있는 속성의 값에 따라 정렬가능하고 무궁무진하게 가능하다.
근데 어떤 규칙으로 a와 b에 비교할 값이 들어가는지 도무지 모르겠다..
let arr = [5,8,2,6];
arr.sort((a,b) => {
console.log(`comparing ${a},${b}`);
return a > b ? 1
: a === b ? 0
: -1;
});
console.log("\n" + arr);
콘솔창에서 a,b 비교하는 것을 확인하는데
arr의 값을 계속 바꾸면서 확인해봐도 규칙성 같은게 안보인다.
누가 설명좀 ㅠㅠ