[JS] 배열Array와 객체Object 내 포함 여부

자바스크립트에서 배열[] 안의 객체{}가 있는 경우가 많은데 여기서 내가 원하는 값이 포함되어있는지 확인할 수 있는 좋은 메서드가 있는데 바로 some()이다.
some()메서드를 알아볼땐 함께 알아봐야할 메서드가 있다. 짝궁인 every()메서드이다. 또한 개인적으로 includes()와 비슷해서 함께 알아보았다.

📌 Some

특정 조건을 만족하는지 배열 내부를 차례대로 검사한다.
조건에 내부 원소 한 개라도 만족하면 true, 아니면 false를 리턴한다.
차례대로 검사하던 중 조건을 만족하는 내부 값이 발견되면 즉시 검사가 중단되고 return값이 나온다. -> 성능에 GOOD
es5이상 사용가능하다.



배열 내 객체 예시

예약프로그램을 예시로 들어보자. 아래처럼 휴일 객체가 있다.

1
2
3
4
5
const holiday = [
{RESTDE_DATE: '2022-10-03', RESTDE_NM: '개천절'}
, {RESTDE_DATE: '2022-10-28', RESTDE_NM: '정기휴관'}
, {RESTDE_DATE: '2022-10-30', RESTDE_NM: '임시휴관'}
];

holiday 객체안에 2022-10-28 있는지 확인해보자.

1
2
3
4
holiday.some(date => date.RESTDE_DATE == '2022-10-28')

// 결과값
true

moment.js를 이용해서 오늘이 휴일객체 안에 있는지 확인해볼 수도 있다.

1
2
3
4
holiday.some(date => date.RESTDE_DATE == moment().format('YYYY-MM-DD'))

// 결과값
true or false




📌 Every

some과 비교되는 메서드로 every가 있다.
특정 조건을 만족하는지 배열 내부를 차례대로 검사한다.
조건에 내부 원소 모두 만족하면 true, 아니면 false를 리턴한다.
차례대로 검사하던 중 조건을 만족하지 않는 내부 값이 발견되면 즉시 검사가 중단되고 return값이 나온다. -> 성능에 GOOD
es5이상 사용가능하다.



배열 내 객체 예시

예약프로그램을 예시로 들어보자. 아래처럼 휴일 객체가 있다.

1
2
3
4
5
const holiday = [
{RESTDE_DATE: '2022-10-03', RESTDE_NM: '개천절'}
, {RESTDE_DATE: '2022-10-28', RESTDE_NM: '정기휴관'}
, {RESTDE_DATE: '2022-10-30', RESTDE_NM: '임시휴관'}
];

holiday 객체가 모두 2022-10-31 이전 일자인지 확인해보자.

1
2
3
4
holiday.some(date => date.RESTDE_DATE < '2022-10-31')

// 결과값
true

moment.js를 이용해서 오늘보다 이전날짜만 있는지도 확인가능하다.

1
2
3
4
holiday.some(date => date.RESTDE_DATE < moment().format('YYYY-MM-DD'))

// 결과값
true or false




📌 includes

배열이 특정 요소를 포함하고 있는 지 검사한다.
있으면 true, 없으면 false를 리턴한다.
대소문자를 구별하고 배열[] 에서만 사용할 수 있다.



배열 예시

예약프로그램을 예시로 들어보자. 아래처럼 휴일 객체가 있다.

1
const holiday = ['2022-10-03', '2022-10-28', '2022-10-30'];

holiday배열에 2022-10-28이 있는지 확인해보자.

1
2
3
4
holiday.includes('2022-10-28'))

// 결과값
true




📌 참고

-스택오버플로우 질문글 when use JS .includes() vs .some()

Comments