Tengo una lista de objetos llamados data .
Y 1 etiqueta de entrada.
Quiero verificar si el valor de entrada existe en la clave person1 de los datos. Si existe, escribo el valor de entrada y el valor de las claves person2 . Si no, escribe I don't understand .
Cómo este código da una respuesta true . esto está wrong
Prueba How old are you ? Si ingresa esto, debe dar I don't understand 2 veces y 30
function SendMessage() { var input = document.getElementById('person'), sender = document.createElement('p'), receiver = sender.cloneNode(true), data = [{ "person1": "Hey", "person2": "Hey, How are you?" }, { "person1": "Hello", "person2": "Hello friend" }, { "person1": "How old are you", "person2": "30" }, ]; sender.innerText = input.value; document.body.appendChild(sender); for (var i = 0; i < data.length; i++) { if (input.value === data[i].person1) { receiver.innerText = data[i].person2; document.body.appendChild(receiver); i = data.length; } else { receiver.innerText = "I don't understand"; document.body.appendChild(receiver); } } } <input id="person"> <button onclick="SendMessage()">Send message</button>Encontré mi código perdido. for loop funciona bien. Creo un elemento antes del bucle for. Y cada iteración solo cambia esos elementos innerText. Escribe I don't understand . Pero cuando encuentra la respuesta correcta. Sobrescribe la respuesta.
function SendMessage() { var input = document.getElementById('person'), sender = document.createElement('p'), receiver = sender.cloneNode(true), data = [{ "person1": "Hey", "person2": "Hey, How are you?" }, { "person1": "Hello", "person2": "Hello friend" }, { "person1": "How old are you", "person2": "30" }, ]; sender.innerText = input.value; document.body.appendChild(sender); for (var i = 0; i < data.length; i++) { if (input.value === data[i].person1) { receiver.innerText = data[i].person2; console.log(data[i].person2); document.body.appendChild(receiver); i = data.length; } else { console.log("I don't understand"); receiver.innerText = "I don't understand"; document.body.appendChild(receiver); } } } <input id="person"> <button onclick="SendMessage()">Send message</button>