0
votes

Recherche dans une entrée de chaîne par un utilisateur pour toute valeur d'un tableau

J'ai un objet qui ressemble à ceci: var objet = {"mot-clé": "Suivant", "autre mot": "mauvais", "TEST": "TEST"} CODE>. Je tiens à saisir l'entrée qu'un utilisateur entre dans un champ de texte et de rechercher une entrée pour l'une des touches d'objets. Si c'est une correspondance, je veux aussi que cela vérifie si la valeur de cette clé est "Suivant". Si c'est le cas, je veux que cela puisse exécuter une fonction. Si une clé correspond à une clé, mais la valeur n'est pas "suivante", je veux que console.log code> la valeur.

Voici le code que j'utilise actuellement: p>

P>

<input id='input' autofocus>
<div id="gamearea"></div>


0 commentaires

3 Réponses :


0
votes

Ce qui suit est une idée de la façon de résoudre le problème à l'aide de la méthode objet.tries code>.

p>

const sentence = "This sentence has a keyword";

const object = {"keyword": "next", "other word": "wrong", "test": "wrong"};

const someFunc = () => {
  console.log("function!");
}

Object.entries(object).forEach(([key, val]) => {
  if (sentence.includes(key)) {
    val === "next" ? someFunc() : console.log('here');
  }
})


1 commentaires

0
votes

ci-dessous est un exemple de base qui vous donnera l'idée à l'aide d'objet.Keys

p>

var object = {"keyword": "next", "other word": "wrong", "test": "wrong"};

var yourSearchWord = 'keyword';

// Get the key names
var objectKeys = Object.keys(object);

if(objectKeys.indexOf(yourSearchWord) != -1) {
    if(object[yourSearchWord] === 'next') {
        console.log('The value is next');
        // Call your next function
    }
}


2 commentaires

Ce n'est pas celui qui a bownvoté, mais votre code doit essentiellement faire une recherche linéaire à travers toutes les clés de l'objet lorsque vous utilisez indexof , il existe plutôt des approches plus rapides pour vérifier l'appartenance à une clé dans un objet . En outre, peut-être un peu plus d'une explication de la manière dont votre code fonctionne peut aider votre réponse. Je ne sais pas si ce sont les raisons pour lesquelles tu as été évité, il suffit de spéculer


Oui, je suis d'accord avec vous sur ce point Nick et comme votre solution aussi.



1
votes

Compte tenu d'une entrée, vous pouvez vérifier s'il s'agit d'une propriété de votre objet code> en utilisant objet.pototype.hasownProperty () code> . Utilisation de la notation avec support, vous pouvez ensuite récupérer la valeur de la propriété fournie comme entrée, pour vérifier s'il est égal à "suivant" code>:

p>

var object = {"keyword": "next", "other word": "wrong", "test": "wrong"};
var userInput = "keyword";

if(object.hasOwnProperty(userInput)) { // check that user input is a property . in object
  var value = object[userInput]
  if(value === "next") { // check that the value of the users input is "next"
    // run some function
    console.log("Value next, so we can call a function");
  } else { // the value is not next, so we can log it
    console.log(value);
  }
}


0 commentaires