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);

↓ 참고 사이트

https://lodash.com/

 

 

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 

 

 

+ Recent posts