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 ]