240808 배열의 정렬 sort

신한별·2024년 8월 8일

💪 매일 기록

목록 보기
41/97

배열.sort()

const fruits = ["Banana", "Orange", "Apple", "Mango"];

console.log(fruits); // [ 'Banana', 'Orange', 'Apple', 'Mango' ]
fruits.sort();
console.log(fruits); // [ 'Apple', 'Banana', 'Mango', 'Orange' ]

💢 새로운 배열을 반환하는 map, filter와 달리sort는 원본 배열 내부의 값 자체를 바꿔버린다.

const fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log("sort 사용 전 원본 배열====>:", fruits); 

const sortedFruits = fruits.sort();
console.log("sort 사용 배열====>:", sortedFruits);

console.log("sort 사용 후 원본 배열====>:", fruits);

sort 사용 전 원본 배열====>: [ 'Banana', 'Orange', 'Apple', 'Mango' ]
sort 사용 배열====>: [ 'Apple', 'Banana', 'Mango', 'Orange' ]
sort 사용 후 원본 배열====>: [ 'Apple', 'Banana', 'Mango', 'Orange' ]

원본 배열 자체가 바뀐 것을 알 수 있다. 불변성이 깨져버린 것이다. 😓

()안에 비교함수를 넣어주지 않으면 기본적으로 문자열로 비교한다.

const numbers = [40, 100, 1, 5, 25];

numbers.sort();
console.log(numbers);

정렬로 인해 [1, 5, 25, 40, 100] 이 나올 것 같지만
사실은 [ 1, 100, 25, 40, 5 ] 이 출력된다. 😩

numbers.sort(function (a, b) {
    return a - b; // (내림차순 정렬 b-a)
});

console.log(numbers); // [ 1, 5, 25, 40, 100 ]

0개의 댓글