2012-01-20 2 views

답변

4

당신은 같은 것을 할 수 있습니다

function findInArray(str:String):int { 
    for(var i:int = 0; i < array.length; i++){ 
     if(array[i] == str){ 
      trace("found it at index: " + i); 
      return i; 
     } 
    } 
    return -1; //If not found 
} 

을 그리고 당신이 그것을 좋아 호출 것을 발견 할 때마다 :

findInArray("oranges"); // Returns 2 

단어의 일부를 검색하려면 pontentially에 대한 undesiderd 결과를 반환 할 수 있습니다 더 큰 목록이지만 다음과 같이 할 수 있습니다.

function findInArrayPartially(str:String):int { 
    for(var i:int = 0; i < array.length; i++){ 
     if(array[i].indexOf(str) > -1){ 
      trace("found it at index: " + i); 
      return i; 
     } 
    } 
    return -1; //If not found 
} 
+0

본 적이 있지만 문자열 안에 문자열을 찾고 싶습니다. 마치 "orang"이 "oranges"의 일부이기 때문에 "orang"이라고 그냥 준 것처럼 2를 돌려 주겠다. – adamzwakk

+0

내 편집을 보아라, 나는 본질적으로 문자열을 검색하도록 라인을 변경했다. – ToddBFisher

1

다른 방법 :

var arr:Array = ["dogs", "cats", "oranges", "apples"]; 

function indexOfSubstring(array:Array, stringToFind:String):int 
{ 
    var answer:int = array.indexOf(stringToFind); 

    if (answer == -1) 
    { 
     var separator:String = "|"; 
     var arrayToString:String = array.join(separator); 
     var indexInString:int = arrayToString.indexOf(stringToFind); 

     if (indexInString != -1) 
     { 
      var shorterStr:String = arrayToString.substring(0, indexInString); 
      answer = shorterStr.split(separator).length - 1; 
     } 
    } 

    return answer; 
} 

trace(indexOfSubstring(arr, "oran")); // returns 2 
trace(indexOfSubstring(arr, "les")); // returns 3 
trace(indexOfSubstring(arr, "ts")); // returns 1 
trace(indexOfSubstring(arr, "broom")); // returns -1 
관련 문제