reserve / sort

sort

  • 내림차순 정리 (가나다, 123, ABC)
  • .sort()는 메소드 안에 함수를 파라미터로 넣어 1,-1,0를 리턴해서 순서를 정하는 방식
  • 내림차순으로 정렬하고 싶으면 부등호 위치 변경 (<, >)이나 -1, 1을 변경하면 된다
  • 첫 번째 인수가 두 번째 인수보다 작을 경우 - 값
  • 두 인수가 같을 경우 0
  • 첫 번째 인수가 두 번째 인수보다 클 경우 + 값
  • 비교함수 규칙
    -매개변수로 두개의 값(a, b)을 전달합니다.
    -배열내의 임의의 요소 a와 b를 비교할 때 반환되는 값이 0보다 크면 a가 -b보다 앞에 옵니다.
    -반환되는 값이 0보다 작으면 b가 a보다 앞에 옵니다.
    -반환되는 값이 0이면 순위를 변경하지 않습니다.

1.1

const arr = [5, 100, 20];
console.log(arr); // [5, 100, 20]
arr.sort();
console.log(arr); // [100, 20, 5]

1.2

const arr = [5, 100, 20];
console.log(arr); // [5, 100, 20]
arr.sort((a, b) => {
  if (a > b) {
    return 1;
  } else if (a < b) {
    return -1;
  } else {
    return 0;
  }
});
console.log(arr); // [5, 20, 100]

1.3 화살표 함수 이용

const arr = [5, 100, 20];
console.log(arr); // [5, 100, 20]
arr.sort((a, b) => a - b);
console.log(arr); // [5, 20, 100]

1.4 내림차순으로

const arr = [5, 100, 20];
console.log(arr); // [5, 100, 20]
arr.sort((a, b) => b - a);
console.log(arr); // [100, 20, 5]

1.5

var student = [
    {name : "재석", age : 21},
    {name : "광희", age : 25},
    {name : "형돈", age : 13},
    {name : "명수", age : 44}
]
student.sort(function(a, b) { 
    return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
});

-> 값은 [광희, 명수, 재석, 형돈]

  • a의 글자가 b의 글자보다 낮을 경우 즉 a가 ㄱ이고 b가 ㄷ일 경우
    가나다로 봤을 때 a가 b보다 작으면 -1번째, 그런데 a가 더 크니까 false라서 -1번째가 아니고 : 뒤의 수식으로 간다
    a가 더 크면 1번째이고 아니면 0번째로 간다

1.5 -1

student.sort(function(a, b) { 
    return a.name > b.name ? -1 : a.name < b.name ? 1 : 0;
});

-> 반대로 값은 [형돈, 재석, 명수, 광희]

1.6 위 수식을 짧게 바꾸면

student.sort(function(a, b) { 
    return a.name < b.name ? -1 : 1;
});

-> 값은 [광희, 명수, 재석, 형돈]

1.7 삼항 연산자 "?"

  • 결과 = a가 참일 때 B, 거짓일 때 C를 리턴한다
var result = (a === true) ? B : c;
  • if문으로 풀어 쓰면
var result = null;
if (a === true) {
	result = B;
    } else {
    result = C; 
    }; 

reserve

  • 오름차순 정리 (다나가, 321, CBA)
  • 기존 배열이 변한다

1.1

let a = [1, 2, 3];
a.reserve();
console.log(a);

-> 값은 [3, 2, 1]

좋은 웹페이지 즐겨찾기