Newsgroup: it.comp.lang.javascript
Titolo: estrarre numeri da un elenco

se ho:
var arr= new
Array("10","10.8","10,8","40","50","60","70","80","140","150","-5","-7","+8","160","170","180");
e voglio cercare un numero da 1 a 5
ottengo  10   10.8  40  140 150 160 170 180 
penso errore è che lui vede come stringa;
come si corregge e inoltre se nell'elenco oltre ad avere solo numeri
come sopra indicato cìè anche del testo, si riesce comunque a tirar fuori
la ricerca ?
code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
window.onload = function() 
{ var cont_3a0=document.formbas.cont_3a0 ;	
 
// elenco base 0
cont_3a0.options.length=0;
		var x=0;
		for (var i = 0; i<arr.length; i++)	
		{ cont_3a0.options[x++]=new Option( arr[i]); }	
	}
	var arr= new
Array("10","10.8","10,8","40","50","60","70","80","140","150","-5","-7","+8","160","170","180");
function fun_ricerca_1()
{
var var_da=document.getElementById("txt_da").value;
var var_a=document.getElementById("txt_a").value;
var var_glob0=arr;
var AA_query_posts_004_da_a=new Array();
AA_query_posts_004_da_a.length=0;
var cc_query=0;
for (var kk = 0;kk <var_glob0.length;kk++) 
		        { 
 
				  //alert(var_glob0[kk] );
				   if (   ( var_da >= var_glob0[kk]  && var_a <= var_glob0[kk] )
										||
									  ( var_da <= var_glob0[kk]  && var_a >= var_glob0[kk] ) 
							 )
 
									{   
									    AA_query_posts_004_da_a[cc_query]=new Array(); //ad ogni
elemento ricreo una vettore riga
									    AA_query_posts_004_da_a[cc_query][0]=var_glob0[kk];
										 cc_query++; }
               }
 var zz=0;
 var box_valori_trovati_1=document.getElementById("sel_valori_trovati_1");
 box_valori_trovati_1.length=0;
 
 for (var aa = 0;aa <AA_query_posts_004_da_a.length;aa++)   
{
//alert(AA_query_posts_004_da_a[aa]);
box_valori_trovati_1.options[zz++]=new Option(
AA_query_posts_004_da_a[aa][0], AA_query_posts_004_da_a[aa][0]);
}
}
</script>
</head>
<BODY>
<form name="formbas" action="" method="post">
<br>
DA:
<input type="text" name="txt_da" id="txt_da" 
	       		 />
A:
<input type="text" name="txt_a" id="txt_a" 
	       		 /><br>
<br>
<input type="button" name="puls" value="RICERCA 1"
onClick="fun_ricerca_1()" /><br>
STRINGA  CHE CONTIENE TESTO  e NUMERI
<table border="1">
<tr>
<td>Elenco Base</td>
<td>ricerca 1</td>
</tr>
<tr>
<td><select  name="cont_3a0" size="22" style="width:100px" ></select></td>
<td><select  name="sel_valori_trovati_1" id="sel_valori_trovati_1"
size="22" style="width:100px" ></select></td>
</tr>
</table>
<!--  ----- -->
</form>
</BODY>
</html>

 la ricerca ?
artev, con il bene che ti voglio... quante volte ne abbiamo già
parlato, io e te, ma anche te ed altri, in questo NG, di questo
argomento??? :)
Intendo proprio valori numerici e stringa in array.
Ormai dovresti sapere tutto ciò che c'è da sapere a riguardo. E
se la memoria non dovesse aiutarti, basta che tu vada a leggere
di nuovo i tuoi stessi thread passati. :)
-- 
~ Il tempo è quello che fai di lui.

 Ormai dovresti sapere tutto ciò che c'è da sapere a riguardo.
mi sopravvaluti :);
però una percentuale di ragione hai; la soluzione forse l'ho trovata
ma non funziona..
for (var kk = 0;kk <var_glob0.length;kk++) 
		        { 
			if ( !isNaN( var_glob0[kk]) )
                         {   var_glob0[kk]=parseFloat(var_glob0[kk]);    }
   ....
ho aggiunto questa riga;
in teoria dovrebbe dirgli alle stringhe nel momento in cui sono numeri di 
passarli come numeri effettivi manon funziona;
ho anche provato ad aggiungere questo:
if (!isNaN( var_da) )
      {   var_da=parseFloat(var_da);    }
if (!isNaN( var_a) )
      {   var_a=parseFloat(var_a);    }
var cc_query=0;
for (var kk = 0;kk <var_glob0.length;kk++) 
		        { 
			if ( !isNaN( var_glob0[kk]) )
                     {   var_glob0[kk]=parseFloat(var_glob0[kk]);    }
ma non mi funziona;

       {   var_a=parseFloat(var_a);    }
Se "var_a" e "var_da" possono anche non essere numeri, è inutile anche
fare il ciclo no?
P.S.
Bada.. questo è l'ultimo thread sul quale ti rispondo in merito a tali
argomenti, eh. :) Quindi, se vuoi approfondire *bene* tutti i concetti
e hai domande da fare in merito, ti conviene farle adesso. :)
-- 
~ Se cerchi una mano disposta ad aiutarti,
la trovi alla fine del tuo braccio.

 e hai domande da fare in merito, ti conviene farle adesso. :)
ok boss
code ZERO:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
window.onload = function() 
{  var cont_3a0=document.formbas.cont_3a0 ;	
 
// elenco base 0
cont_3a0.options.length=0;
		var x=0;
		for (var i = 0; i<glob_myarray_base0.length; i++)	
		{ cont_3a0.options[x++]=new Option( glob_myarray_base0[i]); }	
 }
	var glob_myarray_base0= new
Array("10","10.8","10,8","40","50","60","70","80","140","150","-5","-7","+8","160","170","180");
function fun_ricerca_1()
{
var var_glob0=glob_myarray_base0;
var AA_query_posts_004_da_a=new Array();
AA_query_posts_004_da_a.length=0;
var 	val = 0, 	var_da = +document.getElementById("txt_da").value, 	var_a =
+document.getElementById("txt_a").value;
var cc_query=0;
for (var kk = 0;kk <var_glob0.length;kk++) 
		 {
				  val = +var_glob0[kk];
	           if ( !isNaN(val) && (var_da >= val && var_a <= val) )
				  {  alert(val+" č compreso tra "+var_da+" e "+var_a);  }
 
 
       }


}
}
</script>
</head>
<BODY>


</form>
</BODY>
</html>

funziona ma per test inserire dat da 50 a 1 ad esempio

 	           if ( !isNaN(val) && (var_da >= val && var_a <= val) )
	if ( !isNaN(val) && (var_a >= val && var_da <= val) )
-- 
~ Io ho una filosofia semplice:
Riempi ciň che č vuoto. Vuota ciň che č pieno. Gratta ciň che prude.
(A. R. Longworth)