11521 sujets

JavaScript, DOM et API Web HTML5

tout est dans le titre...

dans un projet j'utilise 4 tableaux pour stocker des tarifs correspondants à des zones et je stocke dans une variable (zoneSelected) la valeur choisie pour la zone active.

var bleue = [18.07,21.87,24.88,29.22,33.20,37.19]; // tarif zone 1
var verte = [25.92,32.57,36.83,43.20,49.57,55.93]; // tarif zone 2
var orange = [29.73,37.92,42.66,49.74,56.83,63.91]; // tarif zone 3
var mauve = [32.92,43.62,48.62,56.13,63.64,71.13]; // tarif zone 4
var zoneSelected;

je cherche un moyen pour utiliser la variable pour atteindre une valeur d'un tableau, il n'existe pas une technique de substitution?
par exemple si zoneSelected = 'verte' je voudrais que

zoneSelected[1] trouve la valeur 32.57

j'ai essayé aussi {zoneSelected}[1] ça marche pas non plus
Pourquoi tu n'assignes pas ton tableau a ta variable ?

var zoneSelected = verte;
window.alert(zoneSelected[1]);
bzh a écrit :
Pourquoi tu n'assignes pas ton tableau a ta variable ?

var zoneSelected = verte;
window.alert(zoneSelected[1]);


ah.. je vais essayer ça..... je suis dessus là.. je savais pas qu'on pouvait faire ça
ça marche pas

si zoneSelected = 'verte'

var tableauPort = zoneSelected;

console.log(tableauPort[1]); affiche 'e' 2ème caractère de 'verte'
Si tu mets des guillemets tu assignes une chaîne à ta variable, pas ton tableau. Smiley cligne

voilà comme parsimonhi Smiley cligne
Modifié par bzh (01 Mar 2016 - 20:08)
oups , alors je re essaye Smiley smile

oui mais ça marche pas.. la valeur 'verte' (ou autre) , est contenue dans une chaine ...
Modifié par lionel_css3 (01 Mar 2016 - 20:30)
Modérateur
Bonjour,

Ceci affiche 32.57 dans un navigateur :
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"> 
</head>
<body>
<div id="main">
<h1>Test</h1>
<script>
var bleue = [18.07,21.87,24.88,29.22,33.20,37.19]; // tarif zone 1
var verte = [25.92,32.57,36.83,43.20,49.57,55.93]; // tarif zone 2
var orange = [29.73,37.92,42.66,49.74,56.83,63.91]; // tarif zone 3
var mauve = [32.92,43.62,48.62,56.13,63.64,71.13]; // tarif zone 4
var zoneSelected;
zoneSelected=verte;
document.write(zoneSelected[1]);
</script>
</body>
</html>
Amicalement,
merci,

je vais revisiter mon code...

là il fonctionne avec des if mais je vais essayer de le rendre plus compact Smiley smile
salut,
si tes variables sont globales, elles appartiennent toutes à l'objet window.
Tu peux donc les récupérer en utilisant une chaîne de caractère de cette manière :

window["verte"];
window.verte;

Mais à ta place j'utiliserais carrément un objet qui regroupe l'ensemble de tes variables :

var tonObject = {
   bleue : [18.07,21.87,24.88,29.22,33.20,37.19],
   verte : [25.92,32.57,36.83,43.20,49.57,55.93],
   orange : [29.73,37.92,42.66,49.74,56.83,63.91],
   mauve : [32.92,43.62,48.62,56.13,63.64,71.13]
};

Par la suite tu récupérer tes variables en passant par l'objet crée :

var zoneSelected = "verte";
tonObject[zoneSelected];
Zelalsan a écrit :

Par la suite tu récupérer tes variables en passant par l'objet crée :

var zoneSelected = "verte";
tonObject[zoneSelected];


super, je viens d'adopter cette méthode et ça fonctionne avec mon code...

cela m'a fait gagner une 20aine de lignes de codes

encore merci Smiley smile