[😃, 🏀, 🍎, 🍇, 🐵].findLastIndex(function(찾는_요소) {
    return 찾는_요소 === 과일;
}); // 👉 2

// 이 배열에서 찾는 요소의 조건인 과일(🍎, 🍇) 중
// 마지막 과일(🍇)의 **인덱스(3)**가 반환됩니다.
// 배열을 생성합니다.
const numbers = [1, 3, 7, 4, 6, 8, 9];

// 조건(짝수)을 만족하는 마지막 요소의 인덱스를 찾습니다.
const lastEven = numbers.findLastIndex(function(num) {
    return num % 2 === 0; // 짝수인지 확인
});

// 결과를 출력합니다.
// 조건(짝수)을 만족하는 마지막 요소는 8이고,
// 해당 요소의 인덱스는 5입니다.
console.log(lastEven); // 출력: 5
arr.findLastIndex(callbackFn[, thisArg])
// 화살표 함수
findLastIndex((element) => { /* … */ })
findLastIndex((element[, index]) => { /* … */ })
findLastIndex((element[, index[, array]]) => { /* … */ })

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

// 인라인 콜백 함수
findLastIndex(function (element) { /* … */ })
findLastIndex(function (element[, index]) { /* … */ })
findLastIndex(function (element[, index[, array]]) { /* … */ })
findLastIndex(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.findLastIndex(callbackFn); // 정의한 기명 함수명을 매개변수에 직접 전달

/* 콜백 함수를 익명 함수로 사용할 경우 */
arr.findLastIndex(function (element[, index[, array]]) {
    // return 문을 사용하여 조건을 정의합니다.
});
const numbers = [1, 2, 3, 4, 5, 3];
const target = 3;

// 조건을 만족하는 마지막 요소를 찾습니다.
const found = numbers.findLastIndex(element => element === target);

// 결과에 따라 메시지를 출력합니다.
if (found !== -1) {
    console.log(`찾는 값(${target})이 배열에 존재합니다. (뒤에서부터 찾음)`);
} else {
    console.log(`찾는 값(${target})이 배열에 존재하지 않습니다.`);
}

// 출력: 찾는 값(3)이 배열에 존재합니다. (뒤에서부터 찾음)
// 사용자 로그인 기록 배열 (findIndex 예제와 동일)
const loginHistory = [
  { user: 'Alice', date: '2025-01-01' },
  { user: 'Bob', date: '2025-01-02' },
  { user: 'Alice', date: '2025-01-05' },
  { user: 'Charlie', date: '2025-01-06' },
  { user: 'Alice', date: '2025-01-10' },
  { user: 'Bob', date: '2025-01-12' },
];

// 특정 사용자
const targetUser = 'Alice';

// 마지막 로그인(findLastIndex)
const lastLoginIndex = loginHistory.findLastIndex(record => record.user === targetUser);

if (lastLoginIndex !== -1) {
  const lastLogin = loginHistory[lastLoginIndex];
  console.log(`마지막 로그인:
    - 사용자: ${lastLogin.user}
    - 날짜: ${lastLogin.date}`);
} else {
  console.log(`${targetUser}의 마지막 로그인 기록이 없습니다.`);
}

/* 출력:
마지막 로그인:
    - 사용자: Alice
    - 날짜: 2025-01-10
*/