どうしたの?JavaScript配列の文字列要素を確認する
var colours = ['red','green', 'blue']
console.log('blue' in colours); // outputs false
偽を出力すると、私はそれがtryeであるべきだと思ったでしょう。あなたがそこにあなたはそれのためにそのように確認することができませんArray
を扱っているので
おかげ
どうしたの?JavaScript配列の文字列要素を確認する
var colours = ['red','green', 'blue']
console.log('blue' in colours); // outputs false
偽を出力すると、私はそれがtryeであるべきだと思ったでしょう。あなたがそこにあなたはそれのためにそのように確認することができませんArray
を扱っているので
おかげ
。 Arrays
のオファー何かがそこにあるかどうかを判断するために、あなたArray.prototype.indexOf
方法:
console.log(colours.indexOf('blue') > -1);
は説明:ECMAスクリプトで
配列がちょうどObjects
に特化されます。つまり、オブジェクトkeys
のための唯一のチェックin
オペレータは、あなたがそれで値をチェックすることはできませんので、あなたの配列が本当に
colours = {
0: 'red',
1: 'green',
2: 'blue'
};
のように見えることを意味します。実際にtrue
を返すif('1' in colours)
を確認できますが、あまり意味がありません。ここでも、配列には.indexOf()
を使用します。
サイドノート:ECMAscriptハーモニー(ES.Next、またはES6)は、キーの代わりにオブジェクト値を列挙するfor of
ループです。 of
演算子をin
と同じ方法で使用できるかどうかはわかりませんが、非常に便利です。
使用colours.indexOf('blue')
。
これはオブジェクトでのみ機能します。オブジェクトにプロパティがあるかどうかをチェックします。
var colours = { red: 123, green: true, blue: "foo"};;
console.log("blue" in colours);
使用indexOf
最近のブラウザで:
var colours = ['red','green', 'blue'];
console.log(colours.indexOf("blue") != -1);
問題はJavaScriptで 'in'オペレータが、それは例えばあるほど素敵ではないということですPythonで。 – ThiefMaster