이미지09
Coding Story/JAVASCRIPT

[ JavaScript ] 자바스크립트 indexOf( ) 함수

반응형

 

 

이전 포스팅에선 여러 값을 가지고 있는 배열에서 특정 조건을 주어 값을 걸러내는 방법을 다뤘다.

 

이번엔 배열이 여러 문자열을 가지고 있고, 이를 조건을 주어 문자열을 뽑아내보도록 하자.

 

 

 

indexOf( ) 함수

indexOf( ) 함수는 문자열을 실시간으로 검색해주는 기능을 가졌다.

 

검색 방향은 제일 첫 인덱스부터 시작되며 왼쪽에서 오른쪽으로 향한다.

 

검색 도중 조건에 만족하는 문자열을 찾지 못했다면 -1 을 return 해준다.

 

 

 

 

 

바로 예제 코드를 보도록 하자. 문자열 배열중에 "고"를 가진 문자열을 찾는 코드이다.

const arr1 = [ '고구마', '감자', '사탕', '고단백', '고기'];
        
const txt = '고';

//-1은 찾지못했다는 것 -> !== -1 은 찾지 못하지 아니하면(찾았다면)
const result = arr1.filter(item => item.indexOf(txt) !== -1);
console.log(result);

 

실행 결과는 다음과 같다.

포스팅 이미지 01

 

 

그럼 이번엔 문자열 중에 객체 배열의 형태에서 "하다"가 들어간 값을 찾아보자.

const data = [
    {name: '김치전을 하다'},
    {name: '운동을 하다'},
    {name: '밥을 먹다'},
    {name: '집에 가다'}
];

const result2 = data.filter(item => item.name.indexOf("하다") !== -1);
console.log(result2);

 

위 예제처럼 item의 name(특정 key)를 기준으로 indexOf( ) 도 사용이 가능하다.

 

 

실행 결과는 다음과 같다.

포스팅 이미지 02

 

 

이처럼 indexOf( ) 를 활용하면 문자열 배열에서 손쉽게 조건을 주어 값을 찾아낼 수 있다.

 

 

 

 

반응형