배열에 특정 문자열이 들어 있는지 확인한 다음 결과 색인을 가져 오려고합니다.배열에서 문자열을 검색하고 AS3에서 색인을 반환하십시오.
array[0] = "dogs";
array[1] = "cats";
array[2] = "oranges";
내가 "오란"에 대한 검색이 다시 얻을 수 있도록하려면 : 내가 가진 경우 예를 들어
. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
배열에 특정 문자열이 들어 있는지 확인한 다음 결과 색인을 가져 오려고합니다.배열에서 문자열을 검색하고 AS3에서 색인을 반환하십시오.
array[0] = "dogs";
array[1] = "cats";
array[2] = "oranges";
내가 "오란"에 대한 검색이 다시 얻을 수 있도록하려면 : 내가 가진 경우 예를 들어
. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
당신은 같은 것을 할 수 있습니다
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
}
다른 방법 :
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
본 적이 있지만 문자열 안에 문자열을 찾고 싶습니다. 마치 "orang"이 "oranges"의 일부이기 때문에 "orang"이라고 그냥 준 것처럼 2를 돌려 주겠다. – adamzwakk
내 편집을 보아라, 나는 본질적으로 문자열을 검색하도록 라인을 변경했다. – ToddBFisher