[JS] 배열Array와 객체Object 내 포함 여부
자바스크립트에서 배열[]
안의 객체{}
가 있는 경우가 많은데 여기서 내가 원하는 값이 포함되어있는지 확인할 수 있는 좋은 메서드가 있는데 바로 some()이다.
some()메서드를 알아볼땐 함께 알아봐야할 메서드가 있다. 짝궁인 every()메서드이다. 또한 개인적으로 includes()와 비슷해서 함께 알아보았다.
📌 Some
특정 조건을 만족하는지 배열 내부를 차례대로 검사한다.
조건에 내부 원소 한 개라도
만족하면 true, 아니면 false를 리턴한다.
차례대로 검사하던 중 조건을 만족하는 내부 값이 발견되면 즉시 검사가 중단되고 return값이 나온다. -> 성능에 GOOD
es5이상 사용가능하다.
배열 내 객체 예시
예약프로그램을 예시로 들어보자. 아래처럼 휴일 객체가 있다.
1 | const holiday = [ |
holiday 객체안에 2022-10-28
있는지 확인해보자.
1 | holiday.some(date => date.RESTDE_DATE == '2022-10-28') |
moment.js를 이용해서 오늘이 휴일객체 안에 있는지 확인해볼 수도 있다.
1 | holiday.some(date => date.RESTDE_DATE == moment().format('YYYY-MM-DD')) |
📌 Every
some과 비교되는 메서드로 every가 있다.
특정 조건을 만족하는지 배열 내부를 차례대로 검사한다.
조건에 내부 원소 모두
만족하면 true, 아니면 false를 리턴한다.
차례대로 검사하던 중 조건을 만족하지 않는 내부 값이 발견되면 즉시 검사가 중단되고 return값이 나온다. -> 성능에 GOOD
es5이상 사용가능하다.
배열 내 객체 예시
예약프로그램을 예시로 들어보자. 아래처럼 휴일 객체가 있다.
1 | const holiday = [ |
holiday 객체가 모두 2022-10-31
이전 일자인지 확인해보자.
1 | holiday.some(date => date.RESTDE_DATE < '2022-10-31') |
moment.js를 이용해서 오늘보다 이전날짜만 있는지도 확인가능하다.
1 | holiday.some(date => date.RESTDE_DATE < moment().format('YYYY-MM-DD')) |
📌 includes
배열이 특정 요소를 포함하고 있는 지 검사한다.
있으면 true, 없으면 false를 리턴한다.
대소문자를 구별하고 배열[]
에서만 사용할 수 있다.
배열 예시
예약프로그램을 예시로 들어보자. 아래처럼 휴일 객체가 있다.
1 | const holiday = ['2022-10-03', '2022-10-28', '2022-10-30']; |
holiday배열에 2022-10-28
이 있는지 확인해보자.
1 | holiday.includes('2022-10-28')) |