web-dev-qa-db-ja.com

JavaScriptマップにデータを動的に追加する

Javascriptでマップにデータを動的に追加する方法はありますか。 map.put(key,value)?私はjavascriptにyuiライブラリを使用していますが、これをサポートするものは何もありませんでした。

56
stevebot

さて、Javascriptオブジェクト関数は「マップ」のようなものです

randomObject['hello'] = 'world';

通常、次の目的のために単純なオブジェクトを作成します。

var myMap = {};

// ...

myMap[newKey] = newValue;

edit—明示的な「put」関数を持つことの問題点は、関数自体がマップの一部のように見えることを避けるために苦労する必要があることです。それは本当にJavascriptyのことではありません。

2014年2月13日—最新のJavaScriptには、列挙できないオブジェクトプロパティを作成するための 機能 があり、とても簡単です。ただし、列挙可能かどうかに関係なく、「put」プロパティがプロパティ名「put」を要求し、使用不可にする場合があります。つまり、オブジェクトごとに名前空間は1つしかありません。

104
Pointy

Javascriptには、Mapという特定のオブジェクトが組み込まれています。次のように呼び出すことができます。

   var myMap = new Map()

.setで更新できます:

   myMap.set("key0","value")

これには、ブール.hasのように、ルックアップの処理に使用できるメソッドの利点があります

  myMap.has("key1"); // evaluates to false 

Mapオブジェクトで.getを呼び出す前にこれを使用して、存在しないキーの検索を処理できます。

31
NiallJG