2016-08-02 3 views
2

검색 자바 스크립트

var theString = "clovers are the best"; 
 
var theArray = ["lovers", "loved", "clove", "love", "clovers"]; 
 
for (i = 0; i < theArray.length; i += 1) { 
 
    if (theString.includes(theArray[i])) { 
 
    console.log(theArray[i]); 
 
    } 
 
}
아래와 같이 I)는 문자열이 string.includes를 사용하여 문자열 배열 (내부에 존재 여부 방법을 검색하는 것을 시도하고있다

에 string.includes()를 사용하는 경우에만

출력에는 예상되는 "클로버"외에 "연인", "정향"및 "사랑"이 포함됩니다. 검색시 전체 문자열 만 검색하도록하려면 어떻게해야합니까?

+0

'String.prototype.includes' 대신'==='를 사용하십시오 – zerkms

+1

'theArray [i] .includes (theString)'을 쓰고 싶습니까? –

+1

루프가없는'theArray.includes (theString)'을 원한다고 생각합니다. – nnnnnn

답변

2

배열의 각 요소를 테스트하여 요소가 문자열에 있는지 확인합니다. 특정 문자열이 구성원인지 확인하기 위해 배열을 테스트 할 수 있습니다. 이는 문제에 대한 설명에 더 가깝습니다.

var theString = "clovers"; 
 
    var theArray = ["lovers", "loved", "clove", "love", "clovers"]; 
 
    var idx = theArray.findIndex(e => e === theString); 
 
    console.log(idx); 
 
    // finding a string done two ways 
 
    idx = theArray.indexOf(theString); 
 
    console.log(idx);

IDX하지 -1이면, 문자열들은 "클로버"의 일부이기 때문에 그것은 엑스트라를 반환 것 배열

+0

'indexOf'와 어떻게 다른가? –

+1

@ torazaburo 그들은 simliar 것들을 않습니다. indexOf는 검색 용어를 인수로 사용합니다. findIndex는 함수를 취합니다. indexOf는 함수가 직접 비교 – Tibrogargan

+0

@Tibrogargan이기 때문에이 인스턴스에서 더 적절할 수 있습니다.이 값을 대답에 추가해야합니다. – Pavlo

-1

에 존재한다. 나의 추천 문자열 개별 단어를 분할하는 것입니다 :

var input = prompt("enter string").split(" "); 
 
unallowed=",.()[]{}[email protected]#$%^&*~`|\\<>?/\"':;"; //list of not allowed chars 
 
for(i=0; i<input.length; i++) 
 
{ 
 
    for(j=0;j<unallowed.length;j++) 
 
    { 
 
     input[i]=input[i].split(unallowed[j]); 
 
     if(typeof(input[i])=="object") 
 
      input[i]=input[i].join(""); 
 
    } 
 
    
 
} 
 
var theArray = ["lovers", "loved", "clove", "love", "clovers"]; 
 
for (i = 0; i < theArray.length; i += 1) { 
 
    for(j=0; j<input.length; j++) 
 
     if (input[j].toLowerCase()==theArray[i]) { 
 
     console.log(theArray[i]); 
 
    } 
 
}
편집 : 내 코드에서 몇 derps를 해결했습니다.

+0

테스트 할 실제 문장에 하드 코드가없고 구두점이 포함될 경우 어떻게해야합니까? 예를 들어, "나는 clovers를 좋아하지 않지만, 나는 떡갈 나무와 튤립을 좋아한다."라고 말하면서, " – nnnnnn

+0

구두점은 약간 복잡해지기 때문에 그냥 제거하면된다. – enoua5