Front/JS & jQuery

[js] include / some

오선지♬ 2025. 1. 5. 14:11
728x90
반응형

include와 some은 모두 특정 값이나 조건을 확인하는 데 사용되지만, 그 목적과 사용 방식에 차이가 있습니다.

 

1. includes

  • 용도: 배열에 특정 값이 존재하는지 확인할 때 사용합니다.
  • 특징:
    • 단순히 배열의 요소 중에 해당 값이 포함되어 있는지만 확인합니다.
    • 값이 배열에 존재하면 true를 반환, 그렇지 않으면 false를 반환합니다.
    • 객체와 같은 복잡한 구조의 데이터에서는 직접 사용하기 어렵습니다.
const numbers = [1, 2, 3, 4];
console.log(numbers.includes(3)); // true
console.log(numbers.includes(5)); // false

 

객체를 포함한 배열에서는 같은 객체인지 비교할 수 없습니다(참조 비교).

const obj = { id: 1 };
const arr = [{ id: 1 }, { id: 2 }];
console.log(arr.includes(obj)); // false (객체 비교는 참조를 기준으로 함)

 

2. some

  • 용도: 배열의 요소 중 하나라도 주어진 조건을 만족하는지 확인할 때 사용합니다.
  • 특징:
    • 콜백 함수로 조건을 전달합니다.
    • 조건을 만족하는 요소가 있으면 true를 반환, 그렇지 않으면 false를 반환합니다.
    • 배열의 값뿐만 아니라 객체의 속성이나 복잡한 조건으로 검사할 때 적합합니다.
const numbers = [1, 2, 3, 4];
console.log(numbers.some(num => num > 3)); // true
console.log(numbers.some(num => num > 5)); // false

 

객체의 속성으로 검사하기:

const users = [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }];
console.log(users.some(user => user.name === "Alice")); // true
console.log(users.some(user => user.name === "Eve"));   // false

 

 

 

주요 차이점 비교

특징 includes some
검사 대상 단순 값 조건에 따라 확인 (콜백 함수 사용)
사용 대상 기본 자료형 (숫자, 문자열 등) 복잡한 조건, 객체의 속성 등을 검사 가능
결과 반환 값이 존재하면 true, 없으면 false 조건을 만족하는 요소가 있으면 true, 없으면 false
객체/배열 검사 불가능 (참조 값 비교만 가능) 객체의 속성 및 조건에 따른 검사 가능

 

 

언제 사용해야 하나요?

  1. includes
    • 배열 안에 특정 값이 단순히 존재하는지 확인할 때 적합합니다.
    • 기본 자료형(숫자, 문자열, 불리언 등)의 값만을 확인할 때 사용합니다.
  2. some
    • 특정 조건에 따라 검사해야 하는 경우 사용합니다.
    • 객체 배열이나 복잡한 조건이 필요한 경우 유용합니다.
728x90
반응형