- 첫 번째 인수가 두 번째 인수보다 작을 경우 - 값
- 두 인수가 같을 경우 0
- 첫 번째 인수가 두 번째 인수보다 클 경우 + 값
- 비교함수 규칙
-매개변수로 두개의 값(a, b)을 전달합니다.
-배열내의 임의의 요소 a와 b를 비교할 때 반환되는 값이 0보다 크면 a가 -b보다 앞에 옵니다.
-반환되는 값이 0보다 작으면 b가 a보다 앞에 옵니다.
-반환되는 값이 0이면 순위를 변경하지 않습니다.
const arr = [5, 100, 20]; console.log(arr); // [5, 100, 20] arr.sort(); console.log(arr); // [100, 20, 5]
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]
const arr = [5, 100, 20]; console.log(arr); // [5, 100, 20] arr.sort((a, b) => a - b); console.log(arr); // [5, 20, 100]
const arr = [5, 100, 20]; console.log(arr); // [5, 100, 20] arr.sort((a, b) => b - a); console.log(arr); // [100, 20, 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번째로 간다
student.sort(function(a, b) { return a.name > b.name ? -1 : a.name < b.name ? 1 : 0; });
-> 반대로 값은 [형돈, 재석, 명수, 광희]
student.sort(function(a, b) { return a.name < b.name ? -1 : 1; });
-> 값은 [광희, 명수, 재석, 형돈]
var result = (a === true) ? B : c;
- if문으로 풀어 쓰면
var result = null; if (a === true) { result = B; } else { result = C; };
let a = [1, 2, 3]; a.reserve(); console.log(a);
-> 값은 [3, 2, 1]