sort( ) 메서드
- 배열의 요소를 적절히 위치한 후 정렬한 후 그 배열을 반환
- 기본 정렬 순서는 문자열의 유니코드 포인트를 따른다
## 구문
arr.sort([compareFunction])
compareFunction
: compareFunction이 제공되면 배열 요소는 compare 함수의 반환 값에 따라 정렬 됨. a와 b가 비교되는 두 요소라면,
- compareFunction(a, b)이 0보다 작은 경우 → a를 b보다 낮은 색인으로 정렬 → 즉, a가 먼저 옴!
- compareFunction(a, b)이 0을 반환하면 → a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬.
- compareFunction(a, b)이 0보다 큰 경우 → b를 a보다 낮은 인덱스로 소트.
- compareFunction(a, b)은 요소 a와 b의 특정 쌍이 두 개인 인수로 주어질 때 항상 동일한 값을 반환해야 함. 일치하지 않는 결과가 반환되면 정렬 순서는 정의되지 않음
compare 함수의 형식
function compare(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}
- 숫자를 비교하기 위해 compare 함수는 a에서 b를 뺄 수 있음
const largestProductOfThree = function (arr) {
//Q. 정수를 요소로 갖는 배열을 입력 받아 3개의 요소를 곱해 나올 수 있는 최대값 리턴
//주의! 배열 요소는 음수와 0을 포함!
//largestProductOfThree([2, 1, 3, 7]); // --> 42 (= 2 * 3 * 7)
const sorted = arr.slice().sort((a, b) => a - b);
const len = arr.length;
const candi1 = sorted[len - 1] * sorted[len - 2] * sorted[len - 3];
const candi2 = sorted[len - 1] * sorted[0] * sorted[1];
return Math.max(candi1, candi2);
}
'codes > daily coding' 카테고리의 다른 글
24_isSubsetOf (0) | 2022.12.26 |
---|---|
23_bubbleSort (0) | 2022.12.22 |
22_fibonacci (0) | 2022.12.20 |
19_decryptCaesarCipher (0) | 2022.12.11 |
18_numberSearch (0) | 2022.12.11 |