2016-04-14 13 views
-2

要素が配列内にすでに存在するかどうかを確認しようとしています。私は少なくとも2つの異なる方法、すなわち[1][2]を知っています。配列内の要素を確認する

私はそれらの両方をテストしたが、両方のケースでno取得:私はnoを取得する両方のケースで

var myArray = ["Banana", "Orange", "Apple", "Mango"]; 

if ("Banana" in myArray) { 
    console.log("yes") 
} else { 
    console.log("no") // <-- 
} 

if (typeof myArray["Banana"] === 'undefined') { 
    console.log("no") // <-- 
} else { 
    console.log("yes") 
} 

を。何か不足していますか?

さらに、どちらが高速ですか?

Here is a fiddle

答えて

7

どちらもほぼ同じことをしています。myArray"Banana"というプロパティがあるかどうかを確認します。それには鍵0,1,2,3があり、myArray[0]の値は "Banana"になります。あなたがチェックしたい場合は、文字列が配列である場合

あなたがArray.prototype.indexOf使用することができます。

if(myArray.indexOf("Banana") >= 0) { 
    console.log("yes") 
} else { 
    console.log("no") 
} 
+0

質問を重複して閉じてみませんか? –

+0

配列には要素があります。プロパティは可能ですが、 "バナナ"はプロパティではなく、単なる要素です。 –

+0

@ZachSaucier複製は、どのようにチェックするかを記述しますが、OPメソッドが機能しなかった理由は説明しません。 – Paulpro

0

あなたは、両方のケースでは、配列のbananath(1)要素を探しています、これは正しくありません。

どちらの方法でも、最初のものは、(この目的に役立っていても)使用するべきではありません。なぜなら、配列で使用するつもりはないからです。

関連する問題