JavaScriptのMap.keys()メソッドとは?使い方とサンプルコードをわかりやすく解説
Map.keys()メソッドとは
JavaScriptのMapオブジェクトに用意されているkeys()メソッドは、entries()メソッドとよく似た働きをします。ただし、keys()が返すのはキーと値のペアではなく、マップに格納されたキーのみを含むイテレーターオブジェクトである点が大きな違いです。
イテレーターオブジェクトはnext()メソッドを持っており、呼び出すたびに次のキーを順番に取得できます。戻り値は {value: キー, done: 真偽値} という形式のオブジェクトで、value プロパティを参照することで個々のキーにアクセスできます。
構文
keys()メソッドの構文は以下のとおりです。引数は不要で、呼び出し元のMapオブジェクト自身のキーを列挙するイテレーターを返します。
mapObj.keys()
サンプルコード
次の例では、4つのキーと値のペアを持つMapオブジェクトを作成し、keys()メソッドで取得したイテレーターをforループと組み合わせて、すべてのキーを画面に出力しています。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var mapVar = new Map();
mapVar.set('1', 'Java');
mapVar.set('2', 'JavaFX');
mapVar.set('3', 'HBase');
mapVar.set('4', 'Neo4j');
var it = mapVar.keys();
for(i=0; i<mapVar.size; i++) {
document.write(it.next().value);
document.write(" <p> ");
}
</script>
</body>
</html>実行結果
このコードを実行すると、登録された順番どおりにキーが出力されます。
1 2 3 4
モダンな書き方:for...ofループとの組み合わせ
現在のJavaScriptでは、for...ofループを使うことで、より簡潔にキーを取り出せます。
const mapVar = new Map([
['1', 'Java'],
['2', 'JavaFX'],
['3', 'HBase'],
['4', 'Neo4j']
]);
for (const key of mapVar.keys()) {
console.log(key);
}このようにkeys()メソッドは、マップからキーだけを効率的に列挙したい場合に便利です。値のみを取得したい場合はvalues()、キーと値の両方を取得したい場合はentries()を使用するとよいでしょう。
-
JavaScriptのMap(マップ)オブジェクトとは?基本的な使い方をサンプルコード付きで解説
MapオブジェクトとはMap(マップ)オブジェクトは、ES6(ECMAScript 2015)で導入された組み込みオブジェクトの一つで、「キー」と「値」のペアで構成される要素を管理するコレクションです。通常のオブジェクトとよく似ていますが、Mapの大きな特徴は、キーにオブジェクトやプリミティブ値など、あらゆる型の値を使用できる点にあります。さらに、要素は挿入した順序で保持されるため、for...ofループなどを利用して、追加した順番どおりに反復処理を行うことも可能です。Mapオブジェクトの主なメソッドとプロパティメソッド / プロパティ説明new Map(iterable)配列などのイテラブル
-
JavaScriptのObject.keys().map()とArray.map()の違いを徹底解説
JavaScriptにおいて、Array.map()は配列の各要素に関数を適用し、その結果を新しい配列として返すメソッドです。一方、オブジェクトには直接map()メソッドが用意されていないため、Object.keys().map()という形で、まずObject.keys()を使ってオブジェクトのキーを配列として取得し、そこにmap()を適用するのが一般的なテクニックとなります。 この記事では、両者の使い方の違いを、実際に動作するサンプルコードと実行結果をもとにわかりやすく解説します。 サンプルコード 以下は、Object.keys().map()とArray.map()の動作を比較できるJa