0
votes

Comment obtenir une clé spécifique de l'objet de la carte dans JavaScript

J'ai un objet de carte et j'aimerais avoir la valeur d'une clé spécifique (la valeur de la clé de la clé) de l'objet de la carte Disons que nous voulons obtenir "correct"

Nous pouvons obtenir les valeurs de la clé "correcte" par: question.get ('correct') // retour 3 mais je veux : somécode // retour 'correct' xxx


2 commentaires

Vous voulez donc avoir la clé basée sur la valeur?


@ Throughcornelissen Je veux quelque chose comme ça: si (valeur de la clé === entrée utilisateur) {faire quelque chose}


3 Réponses :


0
votes

Si votre cas d'utilisation est juste pour tester l'existence de la touche, utilisez simplement a code>, mais si vous souhaitez récupérer la clé si elle présente également une autre valeur, vous pouvez utiliser a code> pour tester La clé est présente ou non, voici GetKey code> Vérification de la fonction Si la clé est présente sur la carte Retour que la touche renvoie non trouvé code>

p>

const question = new Map();

question.set('question','What is the latest version of javasript ?')
question.set(1,'es4')
question.set(2,'es5')
question.set(3,'es6')
question.set('correct',3)
question.set(true , 'correct Answer');
question.set(false , 'wrong Answer')

let getKey = key => question.has(key) ? key : 'Not found'

console.log(getKey('correct'))
console.log(getKey('randome key'))


5 commentaires

Je veux quelque chose comme ça: si (valeur de la clé === entrée utilisateur) {faire quelque chose}


@Hakimbencella qu'entendez-vous par valeurOfKey, question.get ('comptoir') vous donne la valeur de cette clé et vous n'avez pas voulu ce droit?, Si vous avez juste besoin de vérifier quelle utilisation est passée est présent dans la carte ou non seulement utiliser si (question.has (userinput)) {faire quelque chose}


Non, disons que je veux si (userinput === 2) {faire quelque chose} juste la clé "2" et pas tous


@Hakimbencella si (question.has (userinput)) {faire quelque chose} cela fera de même ce que vous dites


si (question.has (userinput)) {faire quelque chose} si l'entrée de l'utilisateur est "3", il renvoie true et je souhaite que cela ne renvoie true que si l'utilisateur saisie = "2" et non " 3 '..



0
votes

Pour obtenir une clé basée sur une valeur, vous pouvez itérer sur les entrées de carte en utilisant MAP.Entries () et renvoyez la clé si trouvé.

p>

const question = new Map();

question.set('question','What is the latest version of javasript ?');
question.set(1,'es4');
question.set(2,'es5');
question.set(3,'es6');
question.set('correct',3);
question.set(true , 'correct Answer');
question.set(false , 'wrong Answer');

function getKey(map, input) {
  for (let [key, value] of map.entries()) {
     if (value === input) {
       return key;
     }
  }
  
  return "Not found";
}

console.log(getKey(question, 3));
console.log(getKey(question, 2));


0 commentaires

0
votes

Vous pouvez obtenir les valeurs des touches comme suit qui obtiendront toutes les clés de l'objet de la carte: xxx


0 commentaires