#javascript #arrays #loops #for-loop
Вопрос:
У меня есть список названных объектов data
.
И 1 входной тег.
Я хочу проверить, существует ли входное значение в person1
ключе данных. Если существует, я записываю входное значение и person2
значение ключей. Еще напиши I don't understand
.
Как этот код дает true
ответ. это wrong
.
Попробуй How old are you
это. Если вы введете это, оно должно дать I don't understand
2 раза и 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>
Ответ №1:
Я нашел свой пропущенный код. ибо цикл работает нормально. Я создаю элемент раньше для цикла. И на каждой итерации я просто изменяю эти элементы внутреннего текста. Он пишет I don't understand
. Но когда он найдет правильный ответ. Это перезаписывает ответ.
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>