Array배열.sort(function(a,b){return compareFunction})
형식으로 사용처음에 강의만 듣고 오름차순 내림차순 정렬 적용 원리가 이해되지 않다가 구글링을 두 글을 읽고 이해하게 되었다.
내림차순 원리 이해 https://brunch.co.kr/@swimjiy/12
오름차순 원리 이해 https://noirstar.tistory.com/359
<script>
//오름차순 정렬(작은 것부터 큰 것 순으로)
var ex = [4,1,3,7,8,89];
ex.sort(function(a, b){
return a - b;
});
//a, b는 ex의 데이터 하나하나를 의미하는 파라미터를 의미한다.
console.log(ex);
//[1,3,4,7,8,89]
</script>
ex의 배열 중 숫자 두개로 예시를 들어보면
var ex = [4,1,3,7,8,89];
ex.sort(function(a, b){
return a - b;
});
a = 4, b = 1 일 경우
a-b = 4-1 = 3, 반환값이 양수이므로
a와 b의 순서를 바꾼다.
[1,4...] 이런식으로 배열된다
따라서 작은거부터 큰거 순(오름차순) 정렬이 된다
<script>
//내림차순 정렬(큰 것부터 작은 거 순으로)
ex.sort(function(a,b){
return b - a;
});
//a, b는 ex의 데이터 하나하나를 의미하는 파라미터를 의미한다.
console.log(ex);
//[89,8,7,4,3,1]
</script>
ex 배열로 예시를 들어보면
var ex = [4,1,3,7,8,89];
ex.sort(function(a, b){
return b - a;
});
a = 4, b = 1
b-a = 1-3 = -2 < 0
반환값이 음수이므로 두 개 순서는 바꾸지 않는다.
따라서 [...4,1]식으로 정렬된다.
역정렬 바로 들어가기 전에 일단 알아야 할 사실!
이 사실과 함께 정렬의 원리인
<script>
var arr = ['a', 'c', 'b'];
arr.sort(function(a, b){
//a = 'a', b = 'c'일 경우(a < b 일경우), 자리를 바꿔라(return 양수)
//a = 'a', b = 'b'일 경우(a < b 일경우), 자리를 바꿔라(return 양수)
//a= 'c', b = 'b'일 경우(a > b 일경우), 그대로 둬라(return 음수)
if(a < b){
return 1;
}
if(a > b){
return -1;
}
else{return 0;}
})
</script>
console.log(arr);//['c', 'b', 'a']
//['']
적용할 array배열.map(function(a){return 적용할 식;})
<script>
var ex = [4,1,3,7,8,89];
var ex2 = ex.map(function(a){
return a * 10;
})
console.log(ex2);
//[40, 10, 30, 70, 80, 890]
</script>
적용할 array 배열.filter(function(a){return 조건문});
<script>
var ex = [4, 1, 3, 7, 8, 89];
var new_ex = ex.filter(function (a) {
return a < 10;//10미만인 데이터만 모아주세요
});
console.log(new_ex);
//[4, 1, 3, 7, 8]
</script>