arr.sort(): 배열 재정렬
- 배열 자체가 변경됨. 주의하기!
- 인수로 정렬 로직을 담은 함수를 받음
let numArr = [1, 5, 4, 2, 3];
numArr.sort();
console.log(numArr); // [1, 2, 3, 4, 5]
let charArr = [‘a’, ‘c’, ‘d’, ‘e’, ‘b’];
charArr.sort();
console.log(charArr); // [“a”, “b”, “c”, “d”, “e”]
let arr = [27, 8, 5, 13];
arr.sort();
console.log(arr); // [13, 27, 5, 8]
→ 정렬할 때 요소를 문자열로 취급하기 때문에 원하는 결과가 나오지 않음
let arr2 = [27, 8, 5, 13];
arr2.sort((a, b) => {
return a - b;
});
console.log(arr2); // [5, 8, 13, 27]
→ 인수로 정렬 로직이 담긴 함수를 넣어 원하는 결과를 도출
Lodash 라이브러리
ex) _.sortBy(arr);
↓ 참고 사이트
arr.reduce(): 인수로 함수를 받고 실행시켜 하나의 결과값을 반환
- (누적 계산값, 현재값) => { return 계산값 };
ex) 배열의 모든 수 합치기
let arr = [1, 2, 3, 4, 5];
const result = arr.reduce((prev, cur) => {
return prev + cur;
}, 0) //0은 초기값
console.log(result); // 15 출력 → 1+2+3+4+5
const result2 = arr.reduce((prev, cur) => {
return prev + cur;
}, 10) //10은 초기값
console.log(result2); // 25 출력 → 10+1+2+3+4+5
ex)
let userList = [
{ name: 'Baby', age: 10 },
{ name: 'Angel', age: 30 },
{ name: 'Noonsong', age: 27 }
];
let result = userList.reduce((prev, cur) => {
if(cur.age >19) {
prev.push(cur.name);
}
return prev;
}, []);
console.log(result); //[“Angel”, ”Noonsong”] 출력
arr.reduceRight(): reduce()와 동일하지만 배열의 오른쪽에서 왼쪽 순으로 수행
※ 상황에 맞게 filter, reduce, forEach, … 을 사용할 줄 알아야 함
↓[코딩앙마] 자바스크립트 중급 강좌 링크
https://www.youtube.com/watch?v=RW25tEAMC9w
'Study > JavaScript' 카테고리의 다른 글
[JavaScript] 중급 #10 - 나머지 매개변수, 전개 구문 (Rest parameters, Spread syntax) (0) | 2021.09.17 |
---|---|
[JavaScript] 중급 #9 - 구조 분해 할당 (Destructuring assignment) (0) | 2021.09.17 |
[JavaScript] 중급 #7 - 배열 메소드1 (Array methods) (0) | 2021.09.13 |
[JavaScript] 중급 #6 - 문자열 메소드 (String methods) (0) | 2021.09.06 |
[JavaScript] 중급 #5 - 숫자, 수학 메소드 (Number, Math) (0) | 2021.09.06 |