0
votes

Comment faire une entrée d'utilisateur en nom variable?

J'ai besoin d'aide avec un morceau de code spécifique. C'est un peu difficile à décrire, mais je vais essayer de le faire le meilleur que je peux. J'ai besoin de vérifier un attribut spécifique d'un objet basé sur l'entrée de l'utilisateur. Par exemple, si l'utilisateur entrait 'London', je souhaite pouvoir accéder à un attribut appelé "xcoor.london".

Avant d'avoir essayé beaucoup de "si" et "sinon si", par exemple < / p> xxx

c'est à peu près tous; Toutes les idées sont les bienvenues et appréciées! Merci d'avance!


1 commentaires

xCoordinate = xcoor [entrée];


3 Réponses :


1
votes

Je ferais un dictionnaire pour les coordonnées. Comme ceci: xxx pré>

Si vous souhaitez utiliser votre entrée code> var pour trouver les coordonnées, vous pouvez le faire comme ceci: P>

const result = coordinates[input];
console.log(result.x, result.y) //returns the x and y coordinates for the user input


0 commentaires

1
votes
var map = {
     'washington d.c.': 'washdc',
     'las vegas': 'lasvegas'
};
var input = document.getElementById('input').value;
xcoordinate = xcoor[map[input.toLowerCase()] || input.toLowerCase()];

2 commentaires

Notez que cela ne fonctionne pas hors de la boîte comme "Washington D.C." devrait être stocké dans xcor ["washdc"] pas dans xcor ["washington d.c."] , vous aurez donc besoin d'une sorte de mappage.


Oui, il aura besoin d'un objet de carte.



-1
votes

Je voudrais le résoudre à l'aide de l'objet comme indiqué ci-dessous,

var xcolor = {
london: 0.1278,
paris: 2.3522,
// keep adding more values here 

}

var ycolor = {
    london: 0.9,
    paris : 10
    // keep adding more values here 
}

let  coordinates = {
    xcoordinate : undefined,
    ycoordinate : undefined 
}



function setInput(input){

  if(xcolor.hasOwnProperty(input) && ycolor.hasOwnProperty(input)){
    coordinates.xcoordinate = xcolor[input];
    coordinates.ycoordinate = ycolor[input];
  }
}

setInput('paris');

console.log(coordinates.xcoordinate);
console.log(coordinates.ycoordinate);

setInput('london');
console.log(coordinates.xcoordinate);
console.log(coordinates.ycoordinate);


0 commentaires