댓글
-
2022.01.07. WordCounter.js - JS 배열의 정렬 방법 파트 수강완료
-
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5] 출력
(출처 https://www.codegrepper.com......tor)
먼저 매개변수 a, b에 4, 2가 전달된다.
4-2=2 -> a-b=양수
function(a, b){return a - b} 일 때
결과값이 양수가 되면 b(뒤의 매개변수)에 더 낮은 인덱스를 할당하게 되어있으므로(=두 원소 순서가 바뀜) return a-b하면 오름차순 정렬이 됨 (위의 예시에서 4는 뒤로 가고 2가 앞으로 옴)
반대로 function(a, b){return b - a} 일 때는
2-4=-2 -> b-a=음수
결과값이 음수가 되면 a(앞의 매개변수)에 더 낮은 인덱스를 할당하여 내림차순 정렬이 됨
참고로 sort()의 인자로 전달되는 function을 compare function이라고 함
출처 : https://www.w3schools.com......asp -
역순 정렬시 function 안에서 a + b 가 아니라 b - a 식으로 해야 동작하는게 맞는데 a + b로 해도 역순 정렬이 되니 이상하네요. 제가 직접 콘솔에서 해보면 a + b 식으로 역순정렬하려고 하면 배열 원본에 변화(역순정렬)가 안생기던데요. 이고잉님 콘솔에서는 역순정렬이 되네요. 일반 텍스트 교재도 아니고 실제 콘솔 실행결과가 역순정렬이 되어 나오니 매우 황당하네요. 그리고 정렬할때 a - b , b - a 를 사용하는지도 분명하게 설명되어 있지 않네요. 다른 문서를 봐도 그냥 쓰지 설명이 없네요...더 찾아봐야겠습니다.
-
1-5
수강완료. -
감사합니다~
-
2016.07.19 화
고맙습니다 3. -
2016.07.04 월
고맙습니다 2. -
고맙습니다
-
열심히 잘 보고 있습니다. 감사합니다.
한가지 ..
11:10초 경에
정렬 기준을 바꿀 때
"마이너스를 플러스로 바꾸면 ..."이 아니고
"a.length - b.length를 b.length - a.length로 바꾸면"이라고 하셔야겠네요.
결국
return a.length - b.length; 를
return b.length - a.length; 로 바꾸어야 정렬 기준이 바뀌게 되겠죠. -
2015-11-14 토요일
한번에 나온 게 아니군요 ㅎㅎ
알파벳 배우는 입장에서 유창하게 영어회화하는 사람 보니 신기했는데
여러 시행착오가 있었군요.
하루 빨리 익혀서 작성은 못해도 자바스크립트 해석을 능숙하게 했으면 좋겠습니다.