2011-11-08 2 views
1

Je suis en train de un petit script qui balises cordenades dans un tableau:améliorer ce modèle de données de tableau

var paises = ['spain','australia']; 
var leftX = ['270','575']; 
var topY = ['60','220']; 

Quand je dois y accéder:

clase = 'spain'; 
var left_ = leftX[paises.indexOf(clase)]; 
var top_ = topY[paises.indexOf(clase)]; 

Cela pourrait être source de confusion pour mes collègues de travail mettre à jour. Comment pourrais-je le rendre plus facile?

+2

Vous avez obtenu trois réponses identiques en environ 1 minute. Je pense que votre chemin vers l'avant est assez clair :). – nrabinowitz

Répondre

4
var places = { 
    "spain": { 
     leftx: '270', 
     topY: '60' 
    }, 
    "australia": { 
     leftx: '575', 
     topY: '220' 
    } 
} 

//Then: 
clase = 'spain'; 
var left_ = places[clase].leftX; 
var top_ = places[clase].topY; 
3

que je le ferais dans une structure d'objet:

var paises = { 
    spain: { leftX: 270, topY: 60 }, 
    // etc 
} 

Ensuite, il est beaucoup plus facile d'accès, et vous n'avez pas à vous soucier .indexOf() support (ce ne sont pas disponibles dans les anciennes versions IE) :

clase = 'spain'; 
var left_ = paises[clase].leftX; 
var top_ = paises[clase].topY; 
3

J'utiliser des objets javascript

var paises = { spain: {leftX: 270, topY: 60}, australia: { leftX: 575, topY: 220}; 

paises.spain.leftX; // 270 
// or 
paises["spain"].leftX; // 270 
// or 
paises['spain']['leftX']; // 270 

donc il y a beaucoup d'options pour l'accès les données, dans un manoir JavaScript conventionnel.

Questions connexes