Просмотр полной версии : Обнуление массива
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 еще можно отрезать часть массива.
//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
//5
for (var i:Number = 0; i<=my_array.length; i++) {
my_array.length -= 1;
}
//6
for(var i:Number=0;i<=my_array.length;i++){
delete my_array[i];
}
#include "var5_from_MrPoma.as"
// :)
//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);
__Des, на форуме код нужно оформлять тегами . Отредактируйте свой пост и исправьте.
//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;
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.