View Full Version : how get a math.max from an ArrayCollection ...?
ricoterox
08-08-2007, 03:06 PM
hi people ...
i have an ArrayCollection with a lot of number.....
i push this arraycollection with a xml (httpService)
how can i get a Math.max to this arrayCollection??
var MaxNumber = Math.max(myArrayCollection) ????
help pliz
ricoterox
08-08-2007, 05:07 PM
i use this for a simple array....
private function minimoGet2():void{
var dato:Number;
var miArray:Array = new Array(5,1,2,8,4,5,6,77);
for(var i:int=0; i<miArray.length; i++){
var arrayE:Object = new Object();
dato = Math.max.apply(this, miArray);
position3.text = String(dato);
}
}
--------> returns 77
but i want use that with a arraycollection....
how convert arraycollection to array..
toArray() ???
arraycollection.source ???
any help....... -.-
Jim Freer
08-08-2007, 05:51 PM
var lvArrayCollection:ArrayCollection = new ArrayCollection( [10,2,3,5,99,0] );
var lvNumber:Number = Math.max.apply( "", lvArrayCollection.source );
http://freerpad.blogspot.com/
ricoterox
08-08-2007, 06:39 PM
var lvNumber:Number = Math.max.apply( "", lvArrayCollection.source );
result --------> NaN
another ideas ........
Jim Freer
08-08-2007, 06:55 PM
Are you sure NaN isn't the correct answer? Is the ArrayCollection filled with numbers? With a non-sparse set of numbers it does work.
http://freerpad.blogspot.com/
ricoterox
08-08-2007, 07:18 PM
my array contains 4.15, 4.12, 4.15, 1.25, 1.58, 5.45, 2.35 ............
private function minimoGet():void{
var dato:Number;
var letras:String;
for(var i:int=0; i<serieCoti1.length; i++){
var arrayE:Object = new Object();
dato = Math.max.apply(this, serieCoti1.source);
//position3.text = String(dato);
}
arrayE.numerosp = dato;
ac_array.addItem(arrayE);
}
that returns ---- NaN
this is my source for serieCoti1 ---> http://www.invertironline.com/graficador/cotizaciones.asp?tid_titulo=2681
the item PRECULTI ... look the source ... its a xml
ideas ?
dr_zeus
08-08-2007, 07:30 PM
If it comes from XML, you may need to do some conversions to get the data into native Number format. Anything from XML is a String by default, and I imagine that's why Math.max() isn't working for you.
ricoterox
08-08-2007, 09:34 PM
private function copyArrat():void{
var dato:Number;
var datoM:Number;
var ruedas:Number = 14;
var unArray:Array = new Array();
for(var i:uint=0; i<ruedas; i++){
var items:Object = new Object();
serieCoti1.getItemAt(i).preculti;
items.num = serieCoti1.getItemAt(i).preculti;
unArray.push(items.num);
gridArray.dataProvider = unArray;
for(var e:int=0; e<unArray.length; e++){
var pEle:Object = new Object();
dato = Math.min.apply(this, unArray);
datoM = Math.max.apply(this, unArray);
position3.text = "Minimo" + dato;
position2.text = "Maximo" + datoM;
//}
pEle.numes = 100*(serieCoti1.getItemAt(i).preculti - dato)/(datoM - dato);
//ac_Estocastico.addItem(pEle);
ac_Estocastico.addItem(new Object());
ac_Estocastico.setItemAt(pEle,i);
estoc.text = "Cuenta " + 100*(serieCoti1.getItemAt(i).preculti - dato)/(datoM - dato);
}
}
}
Look this .....
its working .... but some result are NaN ..... another not....
its a litle weir .....
ricoterox
08-08-2007, 09:38 PM
this is the file .........
if you gona try in your flex
Jim Freer
08-08-2007, 09:51 PM
I'm not following what you are doing all that well, but try this:
items.num = Number( serieCoti1.getItemAt(i).preculti.toString() );
|
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.