JavaScript에서 중복 제거 기능을 구현하기 위해 includes 메소드를 사용했다.
1. includes 메소드 간단 설명
=> [] 배열 안에 특정 요소가 존재하는지의 여부를 true or false로 반환하는 메소드
예시)
var arr = []; //arr 라는 이름의 배열 선언
arr.push('a'); //배열에 'a' 삽입
arr.includes('a' ) //true 반환
arr.includes('b ) //false 반환
2. 문제 발생
그런데 위 메소드가 Chrome에서는 잘 작동했는데,
IE(인터넷 익스플로러) 에서는 작동하지 않아 디버거 창을 보니 다음과 같은 에러가 발생했다.
<SCRIPT438: 개체가 'includes' 속성이나 메서드를 지원하지 않습니다.>
검색을 해보니, includes 메소드는 IE에서는 지원하지 않는단다.
3. 해결 방법
그래서 Chrome과 IE 에서 동시에 동작하는 메소드로 대체를 했다.
includes('요소') => indexOf('요소') != -1
indexOf는 배열 내 요소의 index를 리턴하는데, 해당 값이 없을 경우 -1를 리턴한다.
이를 이용하여, indexOf('요소') != -1 이와 같이 사용하면 includes와 동일한 로직으로 동작한다.
그래서 코드를 다음과 같이 수정했다.
이후, IE에서 정상 작동한다.
끝.
'IT | 개발 > JavaScript' 카테고리의 다른 글
[kendo | grid] 그리드 초기화 (0) | 2020.12.22 |
---|---|
[javascript] 이번 달 1일, 마지막 일 구하기 (3) | 2020.02.25 |
[kendo | grid] grid에서 체크된 항목 제거하기 (0) | 2020.01.04 |
[JavaScript | 기본 문법] 조건문과 반복문 기본 예제 (0) | 2020.01.02 |
[kendo | grid] grid에서 체크된 항목의 dataItem 가져오기(여러 개) (0) | 2019.12.31 |