JQuery Mobile を使用してモバイル アプリを開発しています。Java や JQuery Mobile で HashMap を作成できるかどうか知りたいですか?
はいの場合、どのように?可能であれば、いくつかの例を教えてください。
JQuery Mobile を使用してモバイル アプリを開発しています。Java や JQuery Mobile で HashMap を作成できるかどうか知りたいですか?
はいの場合、どのように?可能であれば、いくつかの例を教えてください。
プレーンな Javascript では、Java HashMap に非常によく似たものを作成できます。
var hashmap = {};
それに何かを入れてください:
hashmap['key'] = 'value';
それから何かを得る:
var value = hashmap['key'];
ほとんどの場合、これで十分ですが、ハッシュマップとまったく同じではありません。たとえば、次の質問を参照してください: JavaScript Hashmap Equivalent
JavaScript でマップを動的に作成する簡単な方法は、次の方法を使用することです。
HTML要素のIDを含む配列を使用してマップを作成しています。最後に、マップ内のキーと値のペアに html 要素の ID と値を配置します。
var selectedFilterValuesMap = {};
for (var i = 0; i < filterIdArray.length; i++) {
selectedFilterValuesMap[filterIdArray[i].trim()] = $("#"+filterIdArray[i].trim()).val();
}
そして、次のようにマップ内の値にアクセスできます。
for(var x in selectedFilterValuesMap){
alert("key - "+x+"\n val - "+selectedFilterValuesMap[x]);
}
Javascript (EcmaScript 5) には現在、オブジェクトと配列しかありません。ES Harmonyは Maps と Sets を導入する予定ですが、それを効果的に使用するのに十分なサポートが得られるまでには、まだ長い道のりがあります。
通常のオブジェクトを使用できます。ほとんどの場合、Java ハッシュマップのように動作します。
// initialisation
var o = { key:"value", "another key", 3};
// or
var o = {};
o.key = "value";
// access property
alert(o.key); // dot-notation
alert(o["key"]); // bracket notation, same as array[i]
// delete property
delete o.key;
キーが有効な識別子である場合、それを引用する必要はなく、ドット表記で簡単にアクセスすることもできます。または一重引用符で囲み、ブラケット表記で指定します。