/* 모든 요소가 숫자 7인지 확인할 배열 */
const numbers = [7, 7, 7, 7];

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

/* 모든 요소가 숫자 7인지 확인하는 every() 함수 적용 */
const allSevenNumbers = numbers.every(callbackFn);
console.log(allSevenNumbers); // true
arr.every(callback(element[, index[, array]])[, thisArg])
// 화살표 함수
every((element) => { /* … */ })
every((element[, index]) => { /* … */ })
every((element[, index[, array]]) => { /* … */ })

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

// 인라인 콜백 함수
every(function (element) { /* … */ })
every(function (element[, index]) { /* … */ })
every(function (element[, index[, array]]) { /* … */ })
every(function (element[, index[, array]]) { /* … */ }[, thisArg])
// 유효한 범위: 1부터 10까지
const numbers = [2, 5, 8, 1, 10];

const allInRange = numbers.every(num => num >= 1 && num <= 10);
console.log(allInRange);  // true (모든 숫자가 1과 10 사이에 있음)
const products = [
    {id: 1, price: 1500},
    {id: 2, price: 2000},
    {id: 3, price: 1200}
];

/* 가격이 1000원 이상인지 판별하는 콜백 함수 */
function isPriceAtLeast1000(price) {
    return price >= 1000;
}

/* 모든 상품의 가격이 1000원 이상인지 확인 */
const allPricesAtLeast1000 = products.every(product => isPriceAtLeast1000(product.price));

console.log(allPricesAtLeast1000); // true (모든 상품의 가격이 1000원 이상임)
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