2017-02-08 126 views
2

我想比较数组中的字符串。我不知道为什么字符串总是不相等。字符串比较if&else语句

var person = ["Sam", "John", "Mary", "Liz"]; 
 
var firstName = prompt("enter name"); 
 
var message = ""; 
 

 
for (x in person) { 
 

 
    var firstName = person[x]; 
 

 
    if (firstName === x){ 
 
    message = "Found Person"; 
 
    } else { 
 
    message = "Nothing compares!"; 
 
    } 
 
} 
 

 
console.log(message);

+1

你有没有'打破'循环? – Rayon

+0

您的循环将保留最后一个Liz的值,因为for循环将执行所有的操作,而不是使用indexOf –

+3

'Array#indexOf'会更容易选择:) – Rayon

回答

0

可以使用Array#some

var people = ["Sam", "John", "Mary", "Liz"]; 

var firstName = prompt("enter name"); 

var personFound = people.some(dude => dude === firstName); 
var message = personFound ? "Found Person" : "Nothing compares!"; 

console.log(message); 

这基本上会检查是否some(甚至一个)dudepeople阵列中满足dude === firstName

0

你需要的条件删除 var firstName = person [x];

Working Example

for (var x in person) { 

// var firstName = person[x]; 

if (firstName == person[x]) 
    { 

     message = "Found Person"; 
     break; 
    } 

else 
    { 
     message = "Not Found"; 
    } 

//console.log(firstName); 

} 

console.log(message); 
+0

只搜索''Liz'',你会发现结果.. – Minksmnm

+0

嗨,它找不到Liz或任何人 – user3750366

+0

对不起,犯了一个错误。只是删除休息;从其他部分 – amansoni211

0
var person = ["Sam", "John", "Mary", "Liz"]; 
var firstName = prompt("enter name"); 
var message; 
for (var x in person) { 

    console.log(firstName); 
    console.log(person[x]) 
    if (firstName === person[x]) 
    { 
     message = "Found Person"; 
    } 
    else 
    { 
     message = "Not Found"; 
    } 
console.log(message); 
} 

最佳途径阵列可发现串或不

console.log(person.includes(firstName));//it's return true false 
0

使用这个..

var person = ["Sam", "John", "Mary", "Liz"]; 
var firstName = prompt("enter name"); 
var message = ""; 

$.each(person,function(index,name){ 
    if (firstName.toLowerCase() == name.toLowerCase()) { 
     message = "Found Person"; 
     return false; 
    } 
    else 
    { 
     message = "Nothing compares!"; 
    }  
}); 

console.log(message); 

其工作,在发布前进行测试。 。

0

我改变了一部分代码,希望它现在适合你。

var person = ["Sam", "John", "Mary", "Liz"]; 

var firstName = prompt("enter name"); 

var message = ""; 

for (x in person) { 

// var firstName = person[x]; 

     if (x.localeCompare(firstName)) { 

     message = "Nothing compares!"; 
    } else 
     { 

     message = "Found Person"; 

    } 

} 

console.log(message);