Array 새로 생성해서 복사하기.

FlashStory/유용한코딩 2008. 4. 15. 18:08
var aa:Array = [ 1, 2, 3 ];
var bb:Array = aa;

bb[0] = 100;

trace(aa);
// output
100, 2, 3

 

기존 위와 같인 배열을 생성하면 bb는 aa를 참조하기때문에,  bb를 고쳐도
aa가 같이 고쳐지게 된다.

이때에는 배열을 생성할때에는 다음과 같이 하면 된다.


var aa:Array = [ 1, 2, 3 ];
var bb:Array = aa.concat(new Array());

bb[0] = 100;

trace(aa);
trace(bb);
// output
1, 2, 3
100, 2, 3

추신:
가르켜 주신 디지님 감사해요~

설정

트랙백

댓글

원하는 단위로 ',' 구분하는 함수.

FlashStory/유용한코딩 2008. 3. 12. 10:10
보통, 쇼핑몰 베너에서 자주쓰는 1000단위별로 나누는걸로 제작을 하려다,
원하는 단위별로 나눌 수 있도록 제작하였습니다.

2년전에 제작해놓은걸 그대로 쓰고있어서.. 허접 그자체입니다-ㅂ-;



ex)
var _num:Number = formatNumber(1000, 3);
trace(_num)
// output
1,000


/**
* 1000 자리를
* @param	_chNum   입력받은 수
* @param	_cutlen  , 나눌 자릿 수
* @return  1000 -> 1,000
*/
public function formatNumber(_chNum:Number, _cutlen:Number):String {
        
        if (isNaN(_chNum)) return "0";			// 값이 비어있거나 없으면 0을 리턴
        var _numString:String = String(_chNum);
        var _number:String = "";
        
        var _mod:Number = (_numString.length % _cutlen);
        var _count:Number = _cutlen - _mod;
        
        for(var i = 0; i < _numString.length; i++) {
                _number = _number + _numString.charAt(i);
                if (i < _numString.length - 1) {
                        _count++;
                        if ((_count % _cutlen) == 0) {
                                _number = _number+",";
                                _count = 0;
                        }
                }
        }
        return _number;
} // End Function

설정

트랙백

댓글

Array.splice의 새발견..?

FlashStory/유용한코딩 2008. 3. 6. 11:19

기존에 배열 중간에 값을 추가할때는, 늘 새 배열을 만들어서 for문으로 돌려서 배열을 재설정하는
함수를 만들어서 사용해 왔었습니다.

그런데 오늘에서여, Array.splice 메서드가 배열의 요소를 삭제를 하거나 원하는 요소를 뽑아내기만 하는게 아니라, 추가도 할 수 있다는걸 알게 되었습니다.

레퍼런스를 촘촘히 살펴봤다면 알 수 있었겠지만, 이랭씨.....




간단한 splice 사용예

var myPets_array:Array = new Array("cat", "dog", "bird", "fish");
trace( myPets_array.splice(1) ); // Displays dog,bird,fish.
trace( myPets_array ); // cat

var myFlowers_array:Array = new Array("roses", "tulips", "lilies", "orchids");
trace( myFlowers_array.splice(1,2 ) ); // Displays tulips,lilies.
trace( myFlowers_array ); // roses,orchids



기존에는 위와 같이만 사용을 했었는데, 레퍼런스에 조금만 내려보니

아래와 같은 사용예가 있었습니다.

var myFurniture_array:Array = new Array("couch", "bed", "desk", "lamp");
trace( myFurniture_array.splice(1,0, "chair" ) ); // Displays empty array.
trace( myFurniture_array ); // displays couch,chair,bed,desk,lamp
간단히 1번 인덱스에 chair 요소를 추가를 하게 되는겁니다.




1번 인덱스에 추가하게 되면, 기존에 있던 1번 인덱스에 있던 요소들은 자연적으로 하나씩 미뤄지게 됩니다.

설정

트랙백

댓글