배열 정렬 / 배열자체가 변경되니 주의할 것 !
let arr = [27,8,5,13];
arr.sort() 를 수행하면 이상한 값이 정렬된다. 왜 그럴까 ?
배열 정렬시 문자열 취급으로 정렬되기 때문에 그렇다. 따라서 sort 안에 함수를 인수로 받도록 하여 정렬해야 한다.
arr.sort((a,b) => {
return a - b;
}
다음과 같이 정렬하면 작은 값 순서대로 정렬된다.
따라서 위와 같이 복잡하게 정렬하기 보다는 Lodash
라는 라이브러리를 사용하는 것이 편리하다.
Lodash
를 사용하면 _.sortBy(arr); 을 통해서 정렬할 수 있다.
공식사이트에서 학습하도록 하자 !
배열의 값을 모두 더하려면 어떻게 해야할까 ?
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은 초기값
reduce() 함수를 통해서 객체를 반환할 수도 있다. 예를들어 성인인 객체를 뽑아 새로운 배열을 만들고 싶다면
reduce((prev,cur)=>{
if(cur.age > 19){ prev.push(cur.name) }
return prev;
}, []);