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]
/* map()関数は
   配列の各要素を変換することを目的として使用されます。 */

// 次の例では、配列のすべての要素(小文字)を大文字に変換することが目的です。
[a, b, c, d].map(小文字 → 大文字) 👉 [A, B, C, D]
arr.map(function(currentValue[, index[, array]]) {
    // マッピング処理のロジック:変換後の結果を返す必要があります
}[, 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]