Sur les versions récentes de certains navigateurs, js considère un string comme un array (comme en php), mais il semblerait que ce soit un array en lecture seule ?
Code:
1
2
3
4 var mytest="aaaaaa" mytest[1]="b" alert(mytest[1])
Version imprimable
Sur les versions récentes de certains navigateurs, js considère un string comme un array (comme en php), mais il semblerait que ce soit un array en lecture seule ?
Code:
1
2
3
4 var mytest="aaaaaa" mytest[1]="b" alert(mytest[1])
Salut spacefog, j'ai été moi aussi confronté assez récemment a ce nouveau comportement la seul solution que j'avais trouvé pour pouvoir écrire dans ce pseudo tableau, avait été de passer par une concaténation grossière :(, un comportement plus string que array sur ce point.
Le tableau en lui même n'est ni utilisable directement comme un tableau à par pour afficher un caractère ou des caractères pas possible d'utiliser des fonctions en mode écriture sur les arrays du style :Code:
1
2
3
4 var mytest="aaaaaa" mytest = mytest[0]+"b"+mytest[2]+mytest[3]+mytest[4]; alert(mytest[1]);
C'est bien dommage.:oops:Code:
1
2
3
4 mytest="aaaaa" mytest[1].push("b"); //génère une erreur mytest.join("."); // génère une erreur
Bonne soirée.
Les navigateurs qui autorisent les accolades(de tableau, ça s'appelle comment?) pour récupérer une valeur à un indice donné d'un string, l'implémentent probablement comme un simple raccourci d'écriture de charAt (qui n'est pas un setter).
Sinon une solution simple pour faire ce que tu veux :
Code:
1
2
3
4 var myString = 'aaaaaa'; myArray = myString.split(''); myArray[1] = 'b'; myString = myArray.join('');
+1 Will : ce n'est qu'une facilité d'accès ajoutée aux objets String (à en croire le MDN, cette fonctionnalité fait partie d'ECMAScript 5 et non ECMAScript 3), mais à part ça (et malheureusement en effet, je suis avec vous dans ce regret les gars ^^) ça n'en fait pas un objet Array, donc les méthodes de traitement de tableaux qui vont avec... on oublie :cry:
Et sinon à part ça :des crochets, mon capitaine ! :mrgreen:
Oui il suffit de passer par un split('') pour retomber sur un tableau afin de pouvoir utiliser les methodes d'un véritable array.
Il eût été tellement plus pratique de pouvoir bénéficier d'un array pour manipuler simplement les chaines avec des indices au lieu des substr() substring() et autre fonctions à deux paramètres ...
Mais bon on va dire que c'est ce qui fait le charme de javascript :mouarf:
non j'ai rien contre slice ^^
mais c'est dommage on était a deux doigts du bonheur et paf ! Non mossieur c'est pas un array :(
;)
Tu es un expert en quadripilectomie ? :mouarf:Citation:
Envoyé par RomainVALERI
ou en fission capillaire ^^Citation:
Tu es un expert en quadripilectomie ?