> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 배열에서 부분 문자열 일치를 효율적으로 확인하는 방법은 무엇입니까?

JavaScript의 배열에서 부분 문자열 일치를 효율적으로 확인하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-31 09:03:29
원래의
276명이 탐색했습니다.

How to Efficiently Check for Substring Matches from an Array in JavaScript?

JavaScript에서 배열 하위 문자열을 사용한 문자열 일치

문제: 주어진 문자열에 JavaScript에서 사전 정의된 배열의 하위 문자열이 포함되어 있는지 효율적으로 확인하는 방법 ?

해결책:

이 작업에 사용할 수 있는 접근 방식은 두 가지입니다.

1. Array.some() 메서드:

array.some() 메서드를 사용하면 배열의 요소 중 하나 이상이 주어진 조건을 만족하는지 확인할 수 있습니다. 다음과 같이 활용할 수 있습니다:

<code class="javascript">if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) {
  // There's at least one matching substring
}</code>
로그인 후 복사

또는 화살표 기능과 include() 메소드를 사용하여:

<code class="javascript">if (substrings.some(v => str.includes(v))) {
  // There's at least one matching substring
}</code>
로그인 후 복사

2. 정규식:

이 유형의 검색을 위해 특별히 설계된 내장 함수는 없지만 원하는 하위 문자열과 일치하는 정규식을 구성하고 해당 문자열에 대해 test() 메서드를 사용할 수 있습니다. 그러나 이 접근 방식은 큰 배열과 문자열의 경우 계산 비용이 많이 들 수 있습니다.

<code class="javascript">const regex = new RegExp(`( ${substrings.join(' | ')} )`, 'g');
if (regex.test(str)) {
  // There's at least one matching substring
}</code>
로그인 후 복사

예:

다음과 같은 하위 문자열 배열과 서로 다른 두 문자열을 고려해 보세요.

<code class="javascript">const substrings = ["one", "two", "three"];

let str1 = "this has one";
let str2 = "this doesn't have any";</code>
로그인 후 복사

array.some() 접근 방식 사용:

<code class="javascript">if (substrings.some(v => str1.includes(v))) {
  console.log(`Match using "${str1}"`);
} else {
  console.log(`No match using "${str1}"`);
}</code>
로그인 후 복사

출력:

Match using "this has one"
로그인 후 복사
<code class="javascript">if (substrings.some(v => str2.includes(v))) {
  console.log(`Match using "${str2}"`);
} else {
  console.log(`No match using "${str2}"`);
}</code>
로그인 후 복사

출력:

No match using "this doesn't have any"
로그인 후 복사

위 내용은 JavaScript의 배열에서 부분 문자열 일치를 효율적으로 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿