[JavaScript] 9. Array 함수들 (2) arr.sort() / arr.reduce()

Zero·2023년 2월 12일
0

JavaScript

목록 보기
9/35

arr.sort()

배열 정렬 / 배열자체가 변경되니 주의할 것 !

let arr = [27,8,5,13];

arr.sort() 를 수행하면 이상한 값이 정렬된다. 왜 그럴까 ?
 
배열 정렬시 문자열 취급으로 정렬되기 때문에 그렇다. 따라서 sort 안에 함수를 인수로 받도록 하여 정렬해야 한다.

arr.sort((a,b) => {
 	return a - b; 
}

다음과 같이 정렬하면 작은 값 순서대로 정렬된다.

따라서 위와 같이 복잡하게 정렬하기 보다는 Lodash 라는 라이브러리를 사용하는 것이 편리하다.

Lodash 를 사용하면 _.sortBy(arr); 을 통해서 정렬할 수 있다.

공식사이트에서 학습하도록 하자 !

arr.reduce()

배열의 값을 모두 더하려면 어떻게 해야할까 ?

let arr = [1,2,3,4,5];

//for , for of , forEach

let result = 0;
arr.forEach((num)=>{
	result += num;
});

console.log(result); // 15

이와 같은 기능을 해주는 것이 arr.reduce()이다.

const result = arr.reduce((prev,cur)=>{
	return prev + cur;
}, 0); // 0은 초기값                 
  • arr.reduce()
  • 인수로 함수를 받는데 (누적 계산값 , 현재 값) => { return 계산값 };
  • 함수를 돌면서 누적값 + 현재값을 통해 총 값을 구해줌

reduce() 함수를 통해서 객체를 반환할 수도 있다. 예를들어 성인인 객체를 뽑아 새로운 배열을 만들고 싶다면

reduce((prev,cur)=>{ 
	if(cur.age > 19){ prev.push(cur.name) } 
	return prev; 
}, []);

0개의 댓글