개발 계획

개발 기록

1. 배열 메소드2 (sort, reduce)

[sort]

JS에서 배열을 정렬할 때는 sort 메소드를 사용하면 된다.

다만 sort는 원본 배열 자체를 바꾸기 때문에 주의하여 사용해야 한다.

let arr = ["e","b","c","a","d"];
arr.sort();
console.log(arr); //["a","b","c","d","e"]
let arr = [3,2,17,23];
arr.sort();
console.log(arr); //17,2,23,3 순으로 출력

위 경우를 보면 문자열은 제대로 정렬이 되는데 정수는 정렬이 이상하게 되는 것을 볼 수 있다.

왜냐하면 sort 메소드는 기본적으로 문자형을 기준으로 정렬을 하기 때문이다.

원하는 기준이 있다면 sort함수의 인자로 함수를 넣어줘야 한다.

let arr = [3,2,17,23];
function fn(a,b) {
	return a - b;
}
arr.sort(fn);
console.log(arr); //2,3,17,23 순으로 출력

함수 내용을 살펴보면 a와 b를 인자로 받고 비교하여 a가 더 크면 b랑 위치를 바꾸고 a가 더 작으면 그대로 두게 된다. 따라서 배열 안의 모든 수를 하나 하나 비교해가며 정렬을 하게 되는 것이다.

실무에서는 함수를 커스텀으로 일일이 만들지 않고 lodash라는 라이브러리를 사용한다.

[reduce]

reduce 메소드는 배열을 순차적으로 돌면서 누적 값과 현재 값을 이용하여 특정 기능을 수행할 때 유용하다.

let arr = [2,5,13,24];
let result = arr.reduce((prev, cur) => {
	return prev += cur;
}, 0);
console.log(result); //44