/* 숫자 7이 하나라도 있는지를 확인할 배열 */
const numbers = [1, 3, 5, 7, 8];

/* 요소가 숫자 7인지 판별하는 콜백함수 */
function callbackFn (element) {
    return element === 7;
}

/* 숫자 7이 하나라도 있는지 확인하는 some() 함수 적용 */
const hasSevenNumber = numbers.some(callbackFn);
console.log(hasSevenNumber); // true
arr.some(callback(element[, index[, array]])[, thisArg])
// 화살표 함수
some((element) => { /* … */ })
some((element[, index]) => { /* … */ })
some((element[, index[, array]]) => { /* … */ })

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

// 인라인 콜백 함수
some(function (element) { /* … */ })
some(function (element[, index]) { /* … */ })
some(function (element[, index[, array]]) { /* … */ })
some(function (element[, index[, array]]) { /* … */ }[, thisArg])
const users = [
    {id: "alice", role: "user"},
    {id: "bob", role: "editor"},
    {id: "charlie", role:"admin"}
];
  
const hasAdmin = users.some(user => user.role === "admin");
console.log(hasAdmin);  // true (Charlie가 admin이므로 true)
const validSerialNumbers = [
    "SN12345678",
    "SN23456789",
    "SN34567890"
];

const product = {
    id: 1,
    serialNumber: "SN12345678"
};

/* 시리얼 넘버가 유효한지 판별하는 콜백 함수 */
function isValidSerialNumber(serialNumber) {
    return validSerialNumbers.some(validSerial => validSerial === serialNumber);
}

/* 제품의 시리얼 넘버가 유효한지 확인 */
const isProductValid = isValidSerialNumber(product.serialNumber);

console.log(isProductValid); // true (제품의 시리얼 넘버가 유효함)
const numbers = [1, 2, 3, 4, 5];

/* 홀수가 아닌 요소를 필터링하는 콜백 함수 */
function isNotOdd(num) {
    return num % 2 === 0;
}

/* 홀수가 아닌 모든 요소를 확인 */
const nonOddNumbers = numbers.filter(isNotOdd);

console.log(nonOddNumbers); // [2, 4]
const numbers = [1, 2, 3, 4, 5];

/* 짝수를 찾는 콜백 함수 */
function isEven(num) {
    return num % 2 === 0;
}

/* 첫 번째 짝수를 찾기 */
const firstEvenNumber = numbers.find(isEven);

console.log(firstEvenNumber); // 2