[질문]Array 복사하기 및 배열에 배열 넣는 방법요.
청력
최초 생성된 배열을 복제하여
사용자의 작업 유무에 따라(배열 위치 변경 또는 취소)
취소되는 경우
최초 배열에 복제된 배열을 다시 입력하여
배열을 원복하고 싶습니다.
그런데 임시 배열에 값을 넣었다가
원복하는 과정에서
최초 배열의 값이 초기화가 되어 버리네요.var gs_citi_arr:Array = new Array();
var temp_citi_arr:Array = new Array();gs_citi_arr = [1, 2, 3, 4];//첫번째 방법
//사용자가 배열의 순서를 변경하는 작업 시작 전에 배열을 복제함
temp_citi_arr = []; //임시 배열 초기화
temp_citi_arr = gs_citi_arr; // 이 방법은 배열의 참조가 되어서 안되더군요.
//사용자가 위치 변경 작업을 취소해서 배열을 다시 원복하고자 함
gs_citi_arr = [];//초기화
gs_citi_arr = temp_citi_arr;//임시 배열 값을 원본 배열에 입력//두번째 방법
//사용자가 배열의 순서를 변경하는 작업 시작 전에 배열을 복제함
temp_citi_arr = []; //임시 배열 초기화
for (var i:Number = 0; i gs_citi_arr.length; i++)
{
temp_citi_arr.push(gs_citi_arr[i]);
}
//사용자가 위치 변경 작업을 취소해서 배열을 다시 원복하고자 함
gs_citi_arr = [];//초기화
for (var i:Number = 0; i temp_citi_arr.length; i++)
{
gs_citi_arr.push(temp_citi_arr[i]);
}최종 적으로 gs_citi_arr 배열이 최초의 배열로 환원되어야 하는데
임시 배열로 복사했다가 원복하는 과정을 2번 이상 실행하면
두 방법 모두 원본 배열이 초기화가 되네요.
배열 복사의 방법이 잘못되었나요?
조언 부탁드립니다.
-
미련곰탱이 2025-03-15
깊은 복사라고 검색을 해보시면 ByteArray를 이용해서 복사를 하는법이 나옵니다.
-
트런들 2025-03-15
1차원 배열이라면 그냥 간단히.. var copyArr:Array = srcArr.slice() ;
-
시원 2025-03-15
임시배열 초기화를 var temp_citi_arr:Array=new Array(); 라고 해보시고 해보세요 저도 그랬거든요ㅋ
-
민트맛캔디 2025-03-15
concat 을 활용 해보심은 어떨가요
aArray = aArray.concat(bArray); -
무크 2025-03-15
검색은 할 만큼 한 것 같은데 못찾았네요 ^^ 그리고 byteArray는 string을 담는 배열이 아니지 않나요?
-
나래 2025-03-15
플래시 에서 array복사는 얆은 복사라고 합니다
검색을 해서 찾아보시면 array를 제대로 복사하는 방법을 설명해 놓은것이 있습니다
biteArray인가 그것을 이용하는 것 같더군요^^