我创建了一个数组,当我通过'for'循环来检查一个真正的输入时,如果给定的输入确实在数组中。我得到了它的工作,因为它 找到了真正的值并提醒真实 ,但是 它为每个其他条目提醒false 在数组中。
$(function(){
$('button').on('click', function() {
var name = $('#name').val()
// Users
var pers = ['John', 'Apples', 'Emily', 'Banana', 'Chris', 'Orange'];
for (var i in pers) {
if( pers[i] == name) {
$('body').append('<h3> You like ' + pers[++i] + '!');
} else {
alert('false');
} // IF
} // Loop
}); // Button
}); // Function
答案 0 :(得分:0)
每个初学者似乎都错了。在完成循环之前,您无法知道找不到该元素。您为每个不匹配的项目提醒false
,即使之前或之后有匹配项。你需要在找到匹配时设置一个标志,然后在循环结束时检查是否设置了标志。
你不应该为此使用数组,你应该使用一个对象来实现映射。
var pers = { John: 'Apples', Emily: 'Banana', Chris: 'Orange' };
if (pers.hasOwnProperty(name)) {
$('body').append('<h3> You like ' + pers[name] + '!');
} else {
alert("false");
}