2013-02-27 2 views
0
for(var i:int=0;i<stringArray.length;i++) 
{ 
    if(stringArray[i]==""||stringArray[i]==null) 
    { 
     trace("Element at "+i+" found empty"); 
    } 
} 

문자열 배열이 AS3에 있습니다. 이제 인덱스 i의 특정 요소가 설정되지 않았는지 확인하고 싶습니다. 어떻게해야합니까? 다음과 같이 내가 설정되지 않은 문자열이 도착 위의 코드로 얻을배열 요소가 설정되지 않았는지 확인하는 방법은 무엇입니까?

오류입니다 - 특정 인덱스가 설정되어 있지 않은 경우는 undefined와 평등에 대한

RangeError: Error #1125: The index 2 is out of range 2. 
+0

의미가 "설정되지 않음"이라는 의미의 기본값을 설정하고 해당 값과 일치하는지 확인하십시오. – niculare

+0

실제로 RangeError를 부여한 코드입니까? 그럴 수 있다는 것이 이상해 보입니다. –

+0

@ LarsBlåsjö 정확히 내가 사용하지 않은 것은 벡터입니다. 각 배열에는 문자열이 포함되어 있기 때문에 약간 이해하기가 쉽지 않으므로 간단한 코드 샘플을 제공했습니다. –

답변

0

오류가 내가 제공 한 코드와 아무런 관련이 없다는 사실이 밝혀 지자 away3d 라이브러리의 비트 맵 자료에는 오류가있어서 내가 물어 본 질문과 완전히 다릅니다. 그러나 어쨌든 좋은 답변.

Lars 주석 덕분에 오류의 다른 가능성에 대해서도 생각해 보았습니다.

1

확인 확인합니다.

+0

을 가리켜 주셔서 감사합니다. (stringArray [i] == undefined)'가 수행해야하는 경우 undefined 또는' "undefined"' –

+0

'를 검사해야합니다. –

+0

ActionScript 3에서 'String'기본값은 'undefined'가 아닌 'null'입니다. -> if (! stringArray [i]) {...} – chadiik

0

어쩌면이 전달 된 배열 인덱스가 범위 내에 있는지 확인하기 위해 경계 조건을 추가 단지 문제, 무엇인가 :

function isValidStringInArray(index:int,array:Array):Boolean{ 
    if(index >= 0 && index < array.length) return ((array[index] != null || array[index] != undefined || array[index].length > 0); 
    else return false; 
} 
+0

항목이 범위 내에 있고 여전히 설정되어 있지 않음 – chadiik

+0

@Chadyk true, 이는 범위 내에 있음을 확인한 후 (주요 문제인 것처럼 보이는 RangeError를 방지하기 위해) 함수가 null/undefined/빈 문자열을 검사하는지 확인합니다 –

5
빈 문자열 이후

nullundefined 모든 falsy 있습니다 조건문에서 부울 false로 간주하고 배열에 문자열 만 포함한다고 말하면 다음과 같이 검사 할 수 있습니다.

관련 문제