Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Обнуление массива (http://www.flasher.ru/forum/showthread.php?t=106104)

Dimoshka 03.01.2008 11:05

Обнуление массива
 
Честно искал - не нашел.
если делаеш
Код:

my_array=null;
то флеш виснет!
Подскажите как обнулить массив, тоесть удалить из него все!

CrazyFlasher 03.01.2008 11:06

Код:

//1
my_array = new Array();
//2
my_array = [];


Dimoshka 03.01.2008 11:08

сенк!

Fernando Costa 03.01.2008 13:09

Код:

//3
my_array.length = 0;


CrazyFlasher 03.01.2008 13:14

2Fernando Costa: мне кажется, что логичней эту проперти использовать как рид-онли (имхо)

Fernando Costa 03.01.2008 13:28

ну она то не рид-онли, с length еще можно отрезать часть массива.

enepx 04.01.2008 00:15

Цитата:

Сообщение от Fernando Costa
Код:

//3
my_array.length = 0;


Больше ни в одном языке такого не видел - всегда удивлялся "наивности" as ))

предлагаю конкурс на самое бесбашенное обнуление массива :taunt:
Код:

//4
var nL:Number = my_array.length;
for (var i:Number = 0; i<nL; ++i) {
    my_array.pop();
}

:D

MrPoma 04.01.2008 01:30

Код:

//5
for (var i:Number = 0; i<=my_array.length; i++) {
    my_array.length -= 1;
}


__Des 04.01.2008 06:19

//6
for(var i:Number=0;i<=my_array.length;i++){
delete my_array[i];
}
#include "var5_from_MrPoma.as"

// :)

enepx 04.01.2008 09:45

Цитата:

Сообщение от MrPoma
Код:

//5
for (var i:Number = 0; i<=my_array.length; i++) {
    my_array.length -= 1;
}


вроде не канает такое )) ты уменьшаешь длину и относительно нее у тебя критерий остановки цикла, потому скорее всего удалится половина массива )

CrazyFlasher 04.01.2008 09:49

извращенцы :)

†‡Paladin‡† 04.01.2008 14:56

Код:

                        var my_Array:Array = [1, 2, 3, 4, 5];
                        var killerString:String = "Finish Him!";
                        my_Array = killerString.match("*");
                        trace(my_Array);


etc 04.01.2008 15:00

__Des, на форуме код нужно оформлять тегами [code][/code]. Отредактируйте свой пост и исправьте.

wvxvw 04.01.2008 19:29

Код:

//1
var _arr:Array = [1,2,3,4,5];
_arr.splice(0,_arr.length)
trace(_arr);
//2
Array.prototype.sort = function(f:Function){
        var c_index:Number = 0;
        while(c_index<this.length-1){
                switch(f(this[c_index],this[c_index+1])){
                        case -1:
                        case 0:
                                c_index++;
                                break;
                        case 1:
                                var el:Object = this[c_index];
                                this.splice(c_index,1);
                                this.splice(c_index+1,0,el);
                                if(!c_index){
                                        c_index++;
                                } else {
                                        c_index--;
                                }
                                break;
                        case 2:
                                this.splice(c_index+1,1);
                                break;
                        case 3:
                        default :
                                this.splice(c_index,1);
                                break;
                }
                if(this.length==1 && f(this[0])>2){
                        this.pop();
                }
        }
}
var _arr:Array = ['qqq',5,4,3,'1+2',2,1,6,3,'foo',{a:'50'}];
var a_arr:Array = ['sss','12a3','ddd'];
a_arr.sort(crazySort);
trace(a_arr);
function crazySort(a,b):Number {
        if(a-b>0){
                return 1;
        } else if(a-b==0){
                return 0;
        } else if(a-b<0){
                return -1;
        } else if(isNaN(a/1)){
                return 3;
        } else {
                return 2;
        }
}
_arr.sort(crazySort);
trace(_arr);

Ну, первый способ просто смешной, а второй может иметь практическую ценность, ну, и как часный случай своей работы, например, если весь массив будет состоять только из не-чисел, то удалит весь массив =)

Eric Gurt 05.01.2008 02:36

мой в применении самый короткий =) :
Код:

arr=new Array();
empty=new Array();
arr[0]=1;
arr[1]="123asdasdsds213";
arr[2]=42341;
// применение:
arr=empty;



Часовой пояс GMT +4, время: 13:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.