JavaScriptで辞書内の要素を検索・取得する方法
はじめに
この記事では、辞書(ディクショナリ)の中から指定されたキーを検索し、対応する値を取得するgetメソッドを実装していきます。
実装例
get(key) {
if(this.hasKey(key)) {
return this.container[key];
}
return undefined;
}JavaScriptのオブジェクトは、本質的に辞書と非常によく似た構造で実装されています。そのため、わざわざ追加のコードを書かなくても、オブジェクトが本来持っているほとんどの機能をそのまま活用できます。さらに、この仕組みはJavaScriptエンジンによって高度に最適化されているため、関数の実行速度について心配する必要もありません。
実際に、以下のように動作を確認できます。
使用例
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
console.log(myMap.get("key1"))
console.log(myMap.get("key2"))
console.log(myMap.get("key3"))出力
上記のコードを実行すると、次のような結果が出力されます。
value1 value2 undefined
登録されていないキー(この例では「key3」)を指定した場合には、undefinedが返される点に注目してください。
ES6のMapを使った方法
ES6以降では、標準のMapオブジェクトが提供されており、まったく同じ機能をgetメソッドでより簡単に実現できます。
使用例
const myMap = new Map([
["key1", "value1"],
["key2", "value2"]
]);
console.log(myMap.get("key1"))
console.log(myMap.get("key2"))出力
実行結果は次のとおりです。
value1 value2
このように、自前で辞書クラスを実装するケース以外にも、ES6のMapを利用すれば、キーによる検索や値の取得を標準機能として手軽に行うことができます。
-
JavaScriptで親要素にアクセスする方法【parentNodeプロパティの使い方】
JavaScriptでDOM操作を行っていると、ある要素の親要素にアクセスしたい場面によく出会います。そんなときに活躍するのがparentNodeプロパティです。このプロパティは、対象ノードの直接の親ノードを返します。 本記事では、クリックイベントとparentNodeプロパティを組み合わせて、クリックされた子要素の親要素を取得し、そのクラス名を画面に表示するサンプルコードを紹介します。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8&qu
-
JavaScriptのimportで波括弧「{}」を使う理由とは?名前付きエクスポートの基本をわかりやすく解説
JavaScript(ESモジュール)でモジュールを読み込む際、import 文に波括弧 { } を付けるかどうか迷ったことはありませんか?実はこの波括弧は、名前付きエクスポート(named export)を読み込むために必要な記法です。本記事では、実際のコード例を使いながら、{ } の役割と使い方を詳しく解説します。 importで { } を使う場面とは JavaScriptのESモジュールでは、エクスポート方法によって読み込み側の書き方が変わります。 名前付きエクスポート:export { 関数名 } のようにエクスポートされたものを読み込む場合は、import { 名前 } fro