私は以下を試しましたが、例外がスローされます:
if (!$get('sslot_hf0').value in ('X', 'Y', 'Z', '0')) {
$get('sslot_hf0').value = 'X';
}
IN
の演算子に似た関数を探していますSQL
私は以下を試しましたが、例外がスローされます:
if (!$get('sslot_hf0').value in ('X', 'Y', 'Z', '0')) {
$get('sslot_hf0').value = 'X';
}
IN
の演算子に似た関数を探していますSQL
使用できますindexOf
['X', 'Y', 'Z', '0'].indexOf('Z')
> 2
['X', 'Y', 'Z', '0'].indexOf('T')
> -1
if (['X', 'Y', 'Z', '0'].indexOf($get('sslot_hf0').value) !== -1) {
//...
}
以下の関数を同じ目的で使用できます。2番目のパラメーターは配列またはオブジェクトであり、最初のパラメーターは配列またはオブジェクトで検索している値です。
function inStruct(val,structure)
{
for(a in structure)
{
if(structure[a] == val)
{
return true;
}
}
return false;
}
if(inStruct('Z',['A','B','Z']))
{
//do your stuff
}
//この関数は継承されたプロパティもトラバースします
つまり、含まれているjsライブラリがある場所
Array.prototype.foo = 10;
よりも
instruct(10,[1,2,3]) // will return true
オブジェクトについても同じことが起こります。このフィドルを確認してください http://jsfiddle.net/rQ8AH/17/
編集::
コメントありがとうございます...これは更新されたコードです。古い関数も保持したほうがいいと思いました。だから、誰かが違いに気付くことができます。
function inStruct(val,structure)
{
for(a in structure)
{
if(structure[a] == val && structure.hasOwnProperty(a))
{
return true;
}
}
return false;
}
in
Javascriptでは同じように機能しません。||
(またはOR
)演算子を使用してそれらを分割する多重比較を使用する必要があります。
SQL:
something in ('X','Y','Z','0')
最新のJavaScript(IE> 8を含む):
['X','Y','Z','0'].indexOf(something)>-1
より現代的なJavaScript(!IE):
['X','Y','Z','0'].includes(something)
includes
レガシーブラウザ(IEを含む)用の単純なポリフィルが必要な場合:
if(!Array.prototype.includes) Array.prototype.includes =function(value,start) {
start=parseInt(start)||0;
for(var i=start;i<this.length;i++) if(this[i]==value) return true;
return false;
};
AuxTacoのコメントに敬意を表して、IE>8で機能するポリフィルのバージョンを次に示します。
if (!Array.prototype.includes) Object.defineProperty(Array.prototype, 'includes', {
value: function(value,start) {
start=parseInt(start)||0;
for(var i=start;i<this.length;i++) if(this[i]==value) return true;
return false;
}
});
便利なセット操作関数が必要で、ライブラリを追加してもかまわない場合は、underscorejsをチェックしてください。
それ以外の場合は、forループを記述して値をループし、等価性チェックを実行することを期待します。
あなたはそれをすることができます、素晴らしくて簡単です、配列に値を保存して使用するIN
var temparr = ['x', 'y', 'z', '0'];
if (!$get('sslot_hf0').value in temparr) {
$get('sslot_hf0').value = 'X';
}
お役に立てれば