📍 숫자
let arr = [1, 5, 4, 2, 3];
arr.sort();
console.log(arr); // [1, 2, 3, 4, 5]
----------------------------------------------
📍 알파벳
let arr = ["c", "b", "a", "d", "e"];
arr.sort();
console.log(arr); // ["a", "b", "c", "d", "e"]
----------------------------------------------
❓ ?문제발생?
let arr = [27, 8, 5, 13];
arr.sort();
console.log(arr); // [13, 27, 5, 8]
// 13과 27의 앞 숫자만 판단하여 정렬
❗️ 해결 방법 →
let arr = [27, 8, 5, 13];
// function fn(a, b) {
// return a - b;
// }
// arr.sort(fn);
arr.sort((a, b) => { // 두 요소를 전달하고
return a - b;
// 두 인수를 비교해 0인지 양수인지 음수인지 알려줌
// a가 크면 양수, 같으면 0, a가 b보다 작으면 음수 return
// 내부 로직 : a 와 b를 비교해서 a가 작으면 a를 앞으로
// 0 으로 반환되면 가만히 있고, a가 크면 b를 앞으로 보냄
});
console.log(arr);
📎 Lodash
: ( 라이브러리 ) 사용하면 _.sortBy(arr); 로 가능, 숫자 / 문자 / 객체 원하는 기준으로 정렬해줌
// 배열 모든수 합치기
let arr = [1, 2, 3, 4, 5];
📍 forEach // // 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); // 옵션 : 초기값
console.log(result); // 15
-------------------------------------------
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: 18 },
];
let result = userList.reduce((prev, cur) => {
if (cur.age > 19) {
prev.push(cur.name);
}
return prev;
},[]);
console.log(result); // (4) ['Mike', 'Jane', 'Sue', 'Harry']
📎 arr.reducerRight()
: arr.reduce와 기능은 동일, 배열 우측부터 연산을 수행한다는 차이점 있음