/* map() 함수는
   배열의 각 요소를 변환하는 것을 목적으로 사용됩니다. */

// 다음의 예시는 배열의 모든 요소를 소문자에게 대문자로 변환이 목적입니다.
[a, b, c, d].map(소문자 → 대문자) 👉 [A, B, C, D]
const numbers = [1, 2, 3, 4, 5];

const doubledNumbers = numbers.map(function(number) {
    return number * 2; // 매핑된 새로운 배열로 반환
});

console.log(doubledNumbers); // 출력: [2, 4, 6, 8, 10]

// 원본 배열은 변경되지 않습니다.
console.log(numbers); // 출력: [1, 2, 3, 4, 5]
arr.map(function(currentValue[, index[, array]]) {
    // 변환(mapping)할 로직: 변환된 결과를 반환해야 합니다.
}[, thisArg]);
// 화살표 함수
map((element) => { /* … */ })
map((element[, index]) => { /* … */ })
map((element[, index[, array]]) => { /* … */ })

// 콜백 함수
map(callbackFn)
map(callbackFn[, thisArg])

// 인라인 콜백 함수
map(function (element) { /* … */ })
map(function (element[, index]) { /* … */ })
map(function (element[, index[, array]]) { /* … */ })
map(function (element[, index[, array]]) { /* … */ }[, thisArg])
const numbers = [1, 2, 3, 4, 5];

const squaredNumbers = numbers.map(function(number) {
    return number * number;
});

console.log(squaredNumbers);
// 출력: [1, 4, 9, 16, 25]
const fruits = ["Apple", "Banana", "Cherry"];

const lowercaseFruits = fruits.map(function(fruit) {
    return fruit.toLowerCase(); // 문자열을 소문자로 변환
});

console.log(lowercaseFruits);
// 출력: ['apple', 'banana', 'cherry']
const users = [
    {id: 1, name: "Alice"},
    {id: 2, name: "Bob"},
    {id: 3, name: "Charlie"}
];

const names = users.map(function(user) {
    return user.name;
});

console.log(names);
// 출력: ['Alice', 'Bob', 'Charlie']
const numbers = [1, 2, 3, 4, 5];

const modifiedNumbers = numbers.map(function(number) {
    if (number % 2 === 0) {
        return "Even";
    } else {
        return "Odd";
    }
});

console.log(modifiedNumbers);
// 출력: ['Odd', 'Even', 'Odd', 'Even', 'Odd']
const numbers = [1, 2, 3, 4, 5];

// map() 함수 사용
const squaredNumbersMap = numbers.map(function(number) {
    return number * number;
});

console.log("Using map():", squaredNumbersMap);
// 출력: "Using map():" [1, 4, 9, 16, 25]

// forEach() 함수 사용
const squaredNumbersForEach = [];

numbers.forEach(function(number) {
    squaredNumbersForEach.push(number * number);
});

console.log("Using forEach():", squaredNumbersForEach);
// 출력: "Using forEach():" [1, 4, 9, 16, 25]

caniuse.com에서 더 자세한 정보를 확인해 보세요.