/* map() 함수 구문 */
const newArray = array.map(function(element, index, array) {
    // 변환할 로직
    return transformedElement; // 변환된 요소를 반환
});

/* filter() 함수 구문 */
const newArray = array.filter(function(element, index, array) {
    // 조건을 평가할 로직
    return condition; // true 또는 false 반환
});
const numbers = [1, 2, 3, 4, 5];

/*
 * map()
 *
 * 요소를 순회하는 목적: 각 요소를 변환하거나 가공한 결과를 적용
 * 처리하는 방법: 가공한 결과를 return으로 반환
*/
const doubled = numbers.map(function(num) {
    return num * 2;  // 각 요소를 2배로 변환하기 위해
});
// doubled는 [2, 4, 6, 8, 10]이 됩니다.


/*
 * filter()
 *
 * 요소를 순회하는 목적: 원하는 조건에 맞는 요소들만으로 필터링
 * 처리하는 방법: 원하는 조건에 맞으면 return으로 결과가 true 반환
*/
const evenNumbers = numbers.filter(function(num) {
    return num % 2 === 0;  // 짝수만 필터링하기 위해
});
// evenNumbers는 [2, 4]가 됩니다.

[a, b, c, d].map(소문자 → 대문자) 👉 [A, B, C, D] // 변환이 목적

[a, B, c, D].filter(소문자) 👉 [a,c] // 필터링이 목적