2017-01-07 8 views
0

the last questionの後に、jquery.inArrayがこの例では機能しないのはなぜですか? IPアドレスを税率配列にリンクさせておくと、コードは国が配列内にあるかどうかをチェックする必要があります(したがって税金の対象となります)。文字列は "ES"(または「25.0であるとき、それをブラウザで実行なぜjquery.inArrayは単純な文字列では機能しませんか?

if(jQuery.inArray("ES", taxes_from_database) != -1) { 
console.log("is in array"); 
} else { 
console.log("is NOT in array"); 
} 

:次に

var taxes_from_database = new Array(); 
    taxes_from_database["BE"]=27.7; 
    taxes_from_database["ES"]=25.0; 
    taxes_from_database["GB"]=23.5; 
    … 

:いない場合は、0

同じ配列に税率を設定します")、です。ご覧のように、コンソールは" is not in array "を返します。私は間違って何をしていますか?

+0

はあなたJJJありがとう、あなたが最速でした。 –

+0

OK @JJJ。それを編集する。 – vijayP

+0

配列のエントリは、インデックスに基づいていなければなりません。ここでは、数字の代わりにキーを入力しようとしています。あなたは配列 – vijayP

答えて

0

あなたはそれを間違って使用しました。BEESなどのインデックスを持つ配列を持つことはできません。

hasOwnPropertyassociativeの配列を使用する必要があります(var taxes_from_database = {};)。あなたは、配列を作成した方法

var taxes_from_database = {}; 
 
    taxes_from_database["BE"]=27.7; 
 
    taxes_from_database["ES"]=25.0; 
 
    taxes_from_database["GB"]=23.5; 
 
if(taxes_from_database.hasOwnProperty('ES')){ 
 
    console.log('is in array'); 
 
} 
 
else{ 
 
    console.log('is NOT in array'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

あなたのケースであなたがassociative配列(あなたの代わりに数字のキーを入れしようとしている)を必要とするので、間違った方法です。ここを見てください:

var taxes_from_database = new Array(); 
 
    taxes_from_database["BE"]=27.7; 
 
    taxes_from_database["ES"]=25.0; 
 
    taxes_from_database["GB"]=23.5; 
 

 
console.log(taxes_from_database); 
 

 
var taxes_from_database = {}; 
 
    taxes_from_database["BE"]=27.7; 
 
    taxes_from_database["ES"]=25.0; 
 
    taxes_from_database["GB"]=23.5; 
 

 
console.log(taxes_from_database);

+0

の代わりにjavascriptオブジェクト '{}'を使ってそれを行うことができます。ありがとう、Alexandru、それは素晴らしいです。 JSは私の強みではありません。 –

+0

@MatthewBennett、どうぞよろしく!あなたが他の人を助けるために最善を尽くすと私の答えを受け入れることを忘れないでください。 –

+0

はい。私はそれを受け入れる前にチェックする時間を待っていただけだった。ありがとうございました。 –

関連する問題