2017-02-08 4 views
2

配列の文字列を比較しようとしています。私はなぜ文字列が決して等しくないのかわかりません。&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 forループはむしろすべてを実行しますindexOf –

+3

'Array#indexOf'はもっと簡単なオプションです:) – Rayon

答えて

0

あなたはpeople配列のsome(一つでも)dudeは、あなたがする必要があるdude === firstName

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); 

を使用することができます削除する 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);