* arr.sort()
> 배열 재정렬
> 배열 자체가 변경되니 주의
> 인수로 정렬 로직을 담은 함수를 받음
(* Lodash 라이브러리를 이용하면 코드한줄로 가능)
let arr = [1, 5, 4, 2, 3]
arr.sort();
console.log(arr); // [1, 2, 3, 4, 5]
let arr2 = ['a', 'c', 'd', 'e', 'b'];
arr2.sort();
console.log(arr2) // ['a', 'b', 'c', 'd', 'e']
> 인수로 정렬 로직을 담은 함수를 받는 예시 코드
let arr = [27, 8, 5, 13];
function fn(a, b) {
return a - b;
}
arr.sort(fn);
console.log(arr); // [5, 8, 13, 27]
// 인자안에 바로 넣어도 된다.
arr.sort( (a, b) => {
return a - b;
});
console.log(arr)
> Lodash 라이브러리를 이용할경우
_.sortBy(arr); // 한줄로 정리 가능
https://lodash.com/
* arr.reduce() : 배열의 모든수 합치기
> 인수로 함수를 받음
> (누적 계산값, 현재값) => { return 계산값 };
let arr = [1, 2, 3, 4, 5]
// forEach를 이용
let result = 0;
arr.forEach((num) => {
result += num;
});
console.log(result) // 15
// reduce를 이용
// 0 : 초기값
let arr = [1, 2, 3, 4, 5]
const result = arr.reduce((prev, cur) => {
return prev + cur;
},0)
console.log(result); // 15
* reduce 실용적인 예제
let userList = [
{ name : "Mike", age: 30},
{ name : "Tom", age: 10},
{ name : "Jane", age: 27},
{ name : "Sue", age: 26},
{ name : "Harry", age: 42},
{ name : "Steve", age: 60},
];
// 초기값 : []
let result = userList.reduce((prev, cur)=> {
if(cur.age > 19) {
prev.push(cur.name)
}
return prev;
}, [])
console.log(result) // ['Mike', 'Jane', 'Sue', 'Harry', 'Steve']
// age값을 전부 합치기
let result2 = userList.reduce((prev, cur)=> {
return (prev += cur.age);
}, 0)
console.log(result2) // 195
'Study > JavaScript' 카테고리의 다른 글
[JavaScript_study] Rest parameters, Spread syntax (0) | 2022.03.23 |
---|---|
[JavaScript_study] 구조 분해 할당 (Destructuring assignment) (0) | 2022.03.23 |
[JavaScript_study] 배열 메소드1 (Array methods) (0) | 2022.03.23 |
[JavaScript_study] 문자열 메소드(String methods) (0) | 2022.03.23 |
[JavaScript_study] 숫자, 수학 method (Number, Math) (0) | 2022.03.23 |