<문제>
<해결방법>
function solution(participant, completion) {
var answer = '';
participant.sort();
completion.sort();
for(let i=0; i<participant.length; i++){
if(participant[i] !== completion[i]){
answer += participant[i]
return answer;
}
}
}
<사용된 개념>
1. sort() 함수
arr.sort([compareFunction])
- 매개변수 : compareFunction (optional)
정렬 순서를 정의하는 함수.
생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니코드 코드 포인트 값에 따라 정렬된다.
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
- 반환값 : 정렬한 배열. 원래 배열이 정렬되는 것에 유의하자. 복사본이 만들어지는 것이 아니다.
compareFunction이 제공되면 배열 요소는 compare 함수의 반환 값에 따라 정렬된다. a와 b가 비교되는 두 요소라면,
- compareFunction(a, b)이 0보다 작은 경우 : a를 b보다 낮은 색인으로 정렬한다. 즉, a가 먼저온다.
- compareFunction(a, b)이 0을 반환하면 : a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬한다.
- compareFunction(a, b)이 0보다 큰 경우 : b를 a보다 낮은 인덱스로 소트한다.
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;
}
//숫자 비교
//오름차순 정렬
function compareNumbers(a, b) {
return a - b;
}
//내림차순 정렬
function compareNumbers(a, b) {
return b - a;
}
예시는 다음과 같다.
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// 결과 : [1, 2, 3, 4, 5]
numbers.sort(function(a, b){
return b - a;
});
console.log(numbers);
// 결과 : [5, 4, 3, 2, 1]
<출처>
sort() 함수
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
'Code > JavaScript & Node.js' 카테고리의 다른 글
[React] LifeCycle API (0) | 2020.09.22 |
---|---|
[Nodejs] 차근차근 Nodejs - 쿠키(cookie) (0) | 2020.07.21 |
html에서 js 연동 시 주의할 점 (0) | 2020.03.04 |
Javascript의 window.print() 기능 (0) | 2019.10.21 |
Javascript 날짜 함수 (0) | 2019.10.21 |
댓글