2017-10-23 2 views
0

해당 항목의 인덱스 값이 정적이 아니기 때문에 인덱스가 아닌 배열에서 특정 요소를 제거하고 싶습니다.AS3의 이름으로 배열에서 특정 요소 제거

myarray.splice(myclip, 1); 

대신이 코드를 사용하면 플래시가 배열의 첫 번째 요소를 제거합니다. 여기에 누락 된 것이 있습니까?

+1

[documentation] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#splice())를 읽으셨습니까? 두 매개 변수는 모두 정수 여야하며, 첫 번째 매개 변수는 삭제하려는 요소의 ** 위치 **이고, 두 번째 매개 변수는 삭제할 요소의 양입니다. 'myarray.splice (myarray.indexOf (myclip), 1);을 해봐라. 왜 당신의 스 니펫에있는 첫 번째 요소 만 제거하는지 모르겠다. 아마도 내부적으로'myclip'을 0으로 던질 수 있을까? 상관 없어요,'indexOf'를 사용하십시오. 그게 작동하지 않으면 루프를 통해 배열의 위치를 ​​먼저 얻으십시오. – DodgerThud

+0

위대한 작품, 답변을 추가 할 수 있도록 그것을 선택하고 대답으로 표시 – Koden

답변

2

Documentation of splice()

두 매개 변수는 첫 번째는 삭제할 요소의 위치입니다, 정수해야하고, 두 번째는 삭제할 요소의 양입니다. 시도해보십시오 myarray.splice(myarray.indexOf(myclip),1);

코드 조각의 첫 번째 요소 만 제거하는 이유를 모르겠습니까? 내부적으로 myclip을 0으로 캐스팅 했습니까? 중요하지 않습니다. indexOf을 사용하십시오. 그게 작동하지 않으면 루프를 통해 배열의 위치를 ​​먼저 얻으십시오.

+0

myarray.indexOf (myclip)는 이름으로 요소를 선택하고 그것을 스플 라이스 번호로 변환합니다. – Koden

+1

단일 요소 제거를 찾을 수 있습니다 그 'myarray.removeAt (myarray.indexOf (myclip));'더 간결합니다. – BadFeelingAboutThis

+0

사용중인 버전에서 작동하지 않는 것 같습니다. – Koden