Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 여러 문자열 조건으로 배열 필터링하는 방법

JavaScript에서 여러 문자열로 배열 필터링하기

배열을 여러 문자열 조건으로 필터링하려면 for 루프indexOf() 메서드를 함께 사용하면 됩니다. 각 검색 키워드가 배열의 문자열 요소에 모두 포함되어 있는지 확인하고, 조건을 만족하는 요소만 새로운 배열에 담는 방식입니다.

예제 코드

var details = [
  'My first Name is John and last Name is Smith',
  'My first Name is John and last Name is Doe',
  'Student first Name is John and last Name is Taylor'
];
var isPresent;
var records = [];
var matchWords = ['John', 'Doe'];
for (var index = 0; index < details.length; index++){
  isPresent = true;
  for (var outer = 0; outer < matchWords.length; outer++) {
    if (details[index].indexOf(matchWords[outer]) === -1) {
      isPresent = false;
      break;
    }
  }
  if (isPresent){
    records.push(details[index]);
  }
}
console.log(records)

코드 설명

  • matchWords 배열에는 찾고자 하는 키워드인 'John'과 'Doe'가 담겨 있습니다.
  • 바깥쪽 for 루프는 details 배열의 각 문자열을 하나씩 순회합니다.
  • 안쪽 for 루프는 indexOf()를 사용해 각 키워드가 현재 문자열에 포함되어 있는지 확인합니다. indexOf()가 -1을 반환하면 해당 키워드가 존재하지 않는다는 의미이며, 이 경우 더 이상 검사할 필요가 없으므로 break로 반복을 종료합니다.
  • 모든 키워드를 포함한 문자열만 records 배열에 추가(push)됩니다.

실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름이 demo151.js라고 가정합니다.

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

PS C:\Users\Amit\JavaScript-code> node demo151.js
[ 'My first Name is John and last Name is Doe' ]

'John'과 'Doe'라는 두 단어를 모두 포함하는 유일한 문자열인 두 번째 요소만 필터링되어 반환된 것을 확인할 수 있습니다. 나머지 문자열은 두 키워드 중 하나라도 포함하지 않아 결과에서 제외되었습니다.