HighDots Forums  

Non e' stringa il valore estratto da array di stringhe?? (bo)

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss Non e' stringa il valore estratto da array di stringhe?? (bo) in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Eie
 
Posts: n/a

Default Non e' stringa il valore estratto da array di stringhe?? (bo) - 06-24-2008 , 12:16 PM






Ciao a tutti non sono praticissimo di javascript, sono
un programmatore php.

Mi sono trovato di fronte ad un errore che non comprendo
e vi chiedo una spiegazione. Tra l'altro questo errore
non fa segnalare l'errore javascript al browser ma si
interrompe semplicemente l'esecuzione del codice js (è
normale? ero rimasto a quando i browser mostravano
almeno il punto esclamativo in basso a sinistra).

Allora, ho un array di stringhe creato con new Array
("pippo","paperino",ecc), estraggo un valore con
array.splice e lo metto in un secondo array appena
creato e vuoto con array2.push.

Puntando al valore inserito nel secondo array con array2
[0] mi aspetterei di avere un valore di tipo stringa.

Invece credo di no.

Se cerco di fare un alert di quel valore l'esecuzione
cessa.
Se cerco di fare un valore.replace l'esecuzione cessa.

Se invece forzo il valore a stringa con String(array2
[0]) allora funziona.

Evidentemente il valore in qualche passaggio perde il
tipo stringa. Ma dove? Perché? Quale prende?

Ve lo chiedo per accrescere la mia cultura su
javascript. Grazie.

Reply With Quote
  #2  
Old   
mastro delphine
 
Posts: n/a

Default Re: Non e' stringa il valore estratto da array di stringhe?? (bo) - 06-24-2008 , 12:53 PM






Eie ha scritto:

Quote:
Allora, ho un array di stringhe creato con new Array
("pippo","paperino",ecc), estraggo un valore con
array.splice e lo metto in un secondo array appena
creato e vuoto con array2.push.

Puntando al valore inserito nel secondo array con array2
[0] mi aspetterei di avere un valore di tipo stringa.

Invece credo di no.
puoi verificare tu stesso che si tratta di un Array:

var sp = [1,2,3].splice(1,1);

alert(typeof sp); // => object
alert(sp instanceof Array); // => true

Quote:
Se cerco di fare un alert di quel valore l'esecuzione
cessa.
questo e' strano. Per capirne il motivo dovremmo vedere lo script.

Quote:
Se cerco di fare un valore.replace l'esecuzione cessa.
replace non e' un metodo di Array e dovresti ricevere un errore

Quote:
Se invece forzo il valore a stringa con String(array2
[0]) allora funziona.
certo, perche' l'Array viene serializzato richiamando toString()

Quote:
Evidentemente il valore in qualche passaggio perde il
tipo stringa. Ma dove? Perché? Quale prende?
vedi sopra

--
Quello che io penso sia utile è di avere il governo il più vicino
possibile a me e lo stato, se proprio non se ne può fare a meno,
il più lontano possibile dai coglioni. (Fabrizio De André)


Reply With Quote
  #3  
Old   
ZER0
 
Posts: n/a

Default Re: Non e' stringa il valore estratto da array di stringhe?? (bo) - 06-24-2008 , 01:20 PM



Eie <eie (AT) eie (DOT) eie> wrote:

Quote:
Mi sono trovato di fronte ad un errore che non comprendo
e vi chiedo una spiegazione. Tra l'altro questo errore
non fa segnalare l'errore javascript al browser ma si
interrompe semplicemente l'esecuzione del codice js (è
normale? ero rimasto a quando i browser mostravano
almeno il punto esclamativo in basso a sinistra).
Dipende dal browser. Firefox ha una comodissima Error Console, ad
esempio. Se stai testando su FF, e non sei pratico dello sviluppo
su client, può sembrarti che lo script semplicemente s'interrompa
ma non è così: basta andare su Tools > Error Console per avere su
una comoda finestra tutti gli errori e warning fin'ora generati.

Quote:
Allora, ho un array di stringhe creato con new Array
("pippo","paperino",ecc),
Esiste anche l'object initializer per gli array. Invece che fare:

var myarr = new Array("pippo", "paperino");

puoi fare:

var myarr = ["pippo", "paperino"];

Quote:
estraggo un valore con
array.splice e lo metto in un secondo array appena
creato e vuoto con array2.push.
Non ne hai bisogno, il metodo splice già ti restituisce un array,
sebbene nella reference di Mozilla c'è scritto che nel caso di un
solo elemento ritorni unicamente quest'ultimo:

var myarr2 = myarr.splice(0,1);

alert( myarr2.constructor ); // Array

Quote:
Puntando al valore inserito nel secondo array con array2
[0] mi aspetterei di avere un valore di tipo stringa.
No, avendo inserito un array, hai ottenuto una matrice, o meglio,
un array di array.
In pratica per ottenere la tua stringa con il tuo codice dovresti
puntare a: array2[0][0].

Quote:
Se cerco di fare un alert di quel valore l'esecuzione
cessa.
Se cerco di fare un valore.replace l'esecuzione cessa.
Se apri l'Error Console ti ritroverai una sfilza di errori.

Quote:
Ve lo chiedo per accrescere la mia cultura su
javascript. Grazie.
Tranquillo, il NG serve appunto a questo.

--
"Se c'è qualcosa di più importante del mio ego su questa nave,
la voglio catturata e fucilata."


Reply With Quote
  #4  
Old   
Eie
 
Posts: n/a

Default Re: Non e' stringa il valore estratto da array di stringhe?? (bo) - 06-24-2008 , 04:20 PM



In article <1ij22im.ncb1qgo9njucN%zer0.shock (AT) libero (DOT) it>,
zer0.shock (AT) libero (DOT) it says...

Quote:
Non ne hai bisogno, il metodo splice già ti restituisce un array,
Ecco il punto! Splice non restituisce il valore, come
credevo, ma un array contenente solo quel valore. Adesso
è chiaro.


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.