.sort([compareFunction])
- 배열의 원소를 정렬
- ASCII 코드 순으로 정렬됨
- 알파벳 순
- 숫자 순 - 본 숫자의 크기가 아닌 앞자리 수의 크기를 기준으로 정렬
- ASCII 코드 순으로 정렬됨
var arr = [ 100, 10, 200, 700, 8, 300, 9, 7 ];
arr.sort();
console.log( arr ); // [10, 100, 200, 300, 7, 700, 8, 9]
- 조건 순으로 정렬
- parameter
- compareFunction : 비교 기능
- 정렬의 순서를 정의하는 조건
- 인수에 따라 음수, 0, 양수 값을 반환
- compareFunction : 비교 기능
- parameter
- 결과값이 0이면 이동 없음
- 결과가 양수이면 b는 a 앞으로 정렬
- 예) a = 100, b = 10이면 a - b = 100 - 10 = 90(양수)
- 10, 100 순으로 정렬
/* 오름차순으로 정렬 */
var arr = [ 100, 10, 200, 700, 8, 300, 9, 7 ];
arr.sort(( a, b ) => a - b);
console.log( arr ); // [7,8,9,10,100,200,300,700]
- 결과가 음수이면 a는 b 앞으로 정렬
- 예) a = 100, b = 10이면 b - a = 10 - 100 = -90(음수)
- 100, 10 순으로 정렬
/* 내림차순으로 정렬 */
var arr = [ 100, 10, 200, 700, 8, 300, 9, 7 ];
arr.sort(( a, b ) => b - a)
console.log( arr ); // [700,300,200,100,10,9,8,7]
.reverse()
- 배열을 역정렬함
- 원본 배열을 변형함
let arr = [1, true, "JavaScript", "자바스크립트"];
arr.reverse()
console.log( arr ); // ["자바스크립트", "JavaScript", true, 1]
.reduce( calllbackfunction[ , initialValue] )
- 배열의 값을 한 개로 '줄인다'
- 함수의 누적 결과인 단일 값을 반환
- 빈 배열 요소에서는 함수를 실행하지 않음
- 원래의 배열을 변경하지 않음
- parameter
- calllbackfunction (accumulator, currentValue, currentIndex, arr)
- accumulator : 누산기. 콜백 반환값을 누적. initialValue이 있는 경우엔 initialValue의 값 (Required)
- currentValue : 현재 처리할 요소 (Required)
- currentIndex : 현재 처리할 요소의 인덱스 (Optional)
- arr : reduce()를 호출한 배열 (Optional)
- initialValue : callback의 최초 호출에서 첫 번째 인수에 제공 할 값. 초기값 = 첫 번째 요소(Optional)
- calllbackfunction (accumulator, currentValue, currentIndex, arr)
- 반복되는 작업을 하는 모든 메서드(filter, sort, includes 등)를 대용 할 수 있음
let arr = [150, 10, 30];
let reducer = arr.reduce(myFunc);
function myFunc(total, num) {
console.log (total);
console.log (num);
return total - num;
}
// 1번째 호출 150 - 10 = 140 (반환값)
// 2번째 호출 140 - 30 = 110 (반환값)
console.log (reducer); // 110
let arr = [1, 2, 3, 4];
let reducer = (accumulator, currentValue) => accumulator + currentValue;
console.log(arr.reduce(reducer)); // 10
// 1. reduce(reducer) : callback함수 "reducer"로 누산하겠다.
// 2. currentValue : initialValue 가 없으므로 첫 번 째 값인 1이 먼저 옴
// 1 + 2 = 3 + 3 = 6 + 4 = 10
let arr = [1, 2, 3, 4];
let reducer = (accumulator, currentValue) => accumulator + currentValue;
console.log(arr.reduce(reducer, 3)); // 3
// 1. reduce(reducer) : callback함수 "reducer"로 누산하겠다.
// 2. currentValue : initialValu가 3이므로 첫 번 째 값인 3이 먼저 옴
// 3 + 1 = 4 + 2 = 6 + 3 = 9 + 4 = 13
/* 홀수, 짝수로 배열 */
let oddEven = [1, 2, 3];
result = oddEven.reduce((accumulator, current) => {
accumulator.push(current % 2 ? '홀수' : '짝수');
return accumulator;
}, []);
console.log(result); // ['홀수', '짝수', '홀수']
// 1번 호출 : 1 % 1 = 1 (홀)
// 2번 호출 : 2 % 2 = 1 (짝)
// 3번 호출 : 3 % 3 = 1 (홀)
🖥함께 본 영상
📚참고 자료
W3Cschool - js
https://www.w3schools.com/jsref/
MDN Web Doc - "Array"
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array
반응형
'D.evelop > JavaScript' 카테고리의 다른 글
[TIL]Javascript - ES6 Arrow function -1- (화살표 함수) (0) | 2021.08.19 |
---|---|
[TIL]Javascript - Return이란? (0) | 2021.08.18 |
[TIL]Javascript - Array Method 3. 자주 쓰이는 메서드 (0) | 2021.08.16 |
[TIL]Javascript - Array Method 2. 잘라내기/합치기 (0) | 2021.08.15 |
[TIL]Javascript - Array Method 1. 추가/제거 (0) | 2021.08.14 |
댓글