![]() ![]() » Tables & matrices , Constantes et fonctions mathématiques , JavaScript par des exemples |
Pour déclarer une chaîne, on la met entre
guillemets : x = "chat" , z =
"123", y="" (chaîne vide)
toString()
: convertit un nombre en chaîne :
si y = 3.14, c = y.toString() retourne
dans c la chaîne "3.14" constituée de 4 éléments.
eval
: convertit une chaîne en nombre, quitte à la
calculer : x = eval(3/4) place 0.75 dans x.
toLowerCase()
et toUpperCase
: convertit en minuscules et majuscules :
x = "Ce chat s'appelle Matou".toLowerCase()
identifiera x à la
chaîne "ce chat
s'appelle matou".
length
: calcule la longueur de la chaîne (nombre de
caractères qu'elle contient) :
lg = "Les 7 nains".length conduit à lg
= 11.
!
Si la
longueur de la chaine x="123456789" est bien 9, JavaScript indexe cependant
les éléments à
partir de 0... (zéro)
et non de 1, bizarrerie qui vous vaudra souvent
des crises de nerfs, face à des résultats aberrants, quand vous
l'oublierez... Ainsi, avec l'instruction suivante, demander d'afficher x.charAt(L)
lorsque L = x.length provoque une erreur, il faut écrire : x.charAt(L
- 1). Très énervant...
charAt(n)
: retourne le terme de rang n d'une chaîne :
si x = "chat",
c = x.charAt(2) fournira c = "a" (c est identifié à
la lettre a) car JavaScript compte comme déjà dit
à partir de
0...
substr (en anglais substring = sous-chaîne) : x.substr(n,p) retourne la chaîne de longueur p extraite de x et commençant au rang n donc au (n+1)-ème caractère, le premier étant de rang 0.
On peut aussi utiliser substring(n,p)
: ici n et p sont les positions de
début et de fin souhaitées. De plus, on commence en
fait au rang n + 1 puisque JavaScript compte
toujours à partir
de 0 et non de 1 :
"chaton".substring(2,5) fournira "ato".
» Exemples : Un problème de 3 , casse-tête impair , palindrome
Les tableaux : |
JavaScript
gère également des listes
(équivalentes à un n-uplet : donnée ordonnée de n éléments) grâce à de
puissantes instructions.
Les tableaux à plusieurs dimensions sont aussi fort bien
gérés au moyen d'une petite astuce... :
Un usage matriciel (méthode du pivot de Gauss) : »
s = new Array(1,2,3,"Soleil")
: définit un vecteur s dont les éléments sont s[0] = 1,
s[1]=2, s[2]=3, ..., s[3]="Soleil".
Pour i = 0, 1 et 2, s[i] est un nombre, s[3] est une
chaîne.
» On pouvait
tout aussi bien écrire s = [1,2,3,"soleil"].
L=[100,7,20,3,1]
L=prompt("Donnez votre liste :",L) // à la sortie du prompt, L est la chaîne 100,7,20,3,1
L=L.split(",") // rétablit L comme liste de 5 éléments.
» tri par insertion , tri à bulles , tri récursif
L.reverse() : renverse l'ordre des éléments de
L.
Si L =
[1,2,3], alert(L.reverse()) affichera 3,2,1.
function tri()
{
L=["Pierre",2,0,"pierre","java",100,"Java"]
alert(L.join(" - ") ; alert(L.sort())
}
➔ Dans le cas d'un tableau numérique, imposez l'ordre usuel en indiquant à JavaScript votre façon de trier : l'instruction L.sort(diff) où diff est la fonction différence indique que nous trions par différence positive :
function tri2()
{
L=[17,2,0,-8,100,13]
alert("Liste L = "+L)
alert("Liste triée = "+L.sort(diff).join(" ; "))
}
function diff(x,y)
{return x-y}Afin de trier dans l'ordre décroissant, on remplacerait x - y par y - x dans la fonction diff.
M= L.slice(n) : retourne
dans M la
tranche (slice = tranche en anglais)
de n premiers éléments de L. L n'est pas modifié.
!
Attention, comme pour les chaînes de caractères, on commence au rang 0 : Si L = [0,1,2,3,4,5,6,7,8,9], M = L.slice(3) retournera
[3,4,5,6, 7,8,9] dans M et l'instruction alert(L.slice(1)) affichera 1,2,3,4,5,6
function p()
{
n=10;
n=eval(prompt("n = ",n))
L=[0,1,2,3,4,5,6,7,8,9]
L.push(n);
alert(L.join(" - "))
}