[😃, 🏀, 🍎, 🍇, 🐵].find(function(検索要素){
    return 検索要素 === 果物;
}); // 👉 🍎

// この配列において、条件となる果物(🍎、🍇)の中で最初に見つかった果物(🍎)が返されます。
// 配列を作成します。
const numbers = [1, 3, 7, 4, 6, 8];

// 条件(偶数)を満たす最初の要素を検索します。
const firstEven = numbers.find(function(num) {
    return num % 2 === 0; // 偶数かどうかを確認
});

// 結果を出力します。
console.log(firstEven); // 出力: 4
arr.find(callbackFn[, thisArg])
// アロー関数
find((element) => { /* … */ })
find((element[, index]) => { /* … */ })
find((element[, index[, array]]) => { /* … */ })

// コールバック関数
find(callbackFn)
find(callbackFn[, thisArg])

// インラインコールバック関数
find(function (element) { /* … */ })
find(function (element[, index]) { /* … */ })
find(function (element[, index[, array]]) { /* … */ })
find(function (element[, index[, array]]) { /* … */ }[, thisArg])
callbackFn(element[, index[, array]])
/**
 * コールバック関数
 *
 * @param {*} element 配列の各要素
 * @param {number} index 配列のインデックス(オプション)
 * @param {Array} array 元の配列(オプション)
 * @return {boolean} フィルタリング条件を満たす場合はtrue、満たさない場合はfalseを返す
 *
 * コールバック関数は、名前付き関数(ユーザー定義関数)や匿名関数として使用できます。
 * (もちろん)すべてのコールバック関数はアロー関数として使用可能です。
 */

/* 名前付き関数をコールバック関数として使用する場合 */
function callbackFn(element[, index[, array]]) { // 名前付き関数の定義
    // return文を使って条件を定義します。
}

arr.find(callbackFn); // 定義した名前付き関数名をパラメーターとして直接渡します

/* 匿名関数をコールバック関数として使用する場合 */
arr.find(function (element[, index[, array]]) {
    // return文を使って条件を定義します。
});
const numbers = [1, 2, 3, 4, 5];
const target = 3;

// 条件を満たす最初の要素を検索します。
const found = numbers.find(element => element === target);

// 結果に応じてメッセージを出力します。
if (found !== undefined) {
    console.log(`探している値(${target})が配列に存在します。`);
} else {
    console.log(`探している値(${target})が配列に存在しません。`);
}

// 出力: 探している値(3)が配列に存在します。
// 人オブジェクトの配列を作成します。
const people = [
    {name: "Alice", age: 30},
    {name: "Bob", age: 25},
    {name: "Charlie", age: 35}
];

// 検索したい名前を変数として定義します。
const targetName = "Bob";

// 配列からnameプロパティがtargetNameと一致する最初の人オブジェクトを検索します。
const person = people.find(obj => obj.name === targetName);

// 結果を出力します。
console.log(person); // 出力: {name: "Bob", age: 25}
// 商品の配列を作成します。
const products = [
    {name: "Laptop", price: 1000},
    {name: "Phone", price: 500},
    {name: "Tablet", price: 300}
];

// 条件を定義するコールバック関数を作成します。
// ここでは価格が600未満の商品を検索する条件です。
const customCondition = product => product.price < 600;

// 配列から条件(customCondition)を満たす最初の商品を検索します。
const affordableProduct = products.find(customCondition);

// 結果を出力します。
console.log(affordableProduct); // 出力: {name: "Phone", price: 500}