JavaScriptのMap.clear()メソッドとは?使い方とサンプルコードを解説
Map.clear()メソッドとは
Mapオブジェクトのclear()メソッドは、そのMapオブジェクトに格納されているすべての要素(キーと値のペア)をまとめて削除するためのメソッドです。引数を受け取らず、戻り値は常にundefinedになります。
個々の要素を指定して削除するdelete()メソッドと違い、Mapの中身を丸ごと空にしたい場合に便利です。
構文
mapVar.clear()
引数は不要で、呼び出し元のMapオブジェクト自体が空になります。なお、戻り値はundefinedなので、var map = mapVar.clear()のように書いても変数には何も代入されない点に注意してください。
使用例①:すべての要素を削除する
4つの要素を持つMapに対してclear()を呼び出し、削除後のサイズを確認する基本的なサンプルです。
<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');
mapVar.clear();
document.write("マップオブジェクトのサイズ: "+mapVar.size);
</script>
</body>
</html>
出力結果:
マップオブジェクトのサイズ: 0
clear()を実行した直後にsizeプロパティを参照すると0になっており、すべての要素が削除されたことがわかります。
使用例②:削除前後のサイズを比較する
次の例では、clear()を呼び出す前後でMapのサイズを出力し、挙動をより明確に確認しています。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var mapVar = new Map();
mapVar.set('1', 'Raju');
mapVar.set('2', 'Ram');
mapVar.set('3', 'Rahim');
mapVar.set('4', 'Robert');
document.write("マップのサイズ: "+mapVar.size);
mapVar.clear();
document.write("<br>");
document.write("clear()で内容を消去した後のマップのサイズ: "+mapVar.size);
</script>
</body>
</html>
出力結果:
マップのサイズ: 4 clear()で内容を消去した後のマップのサイズ: 0
clear()メソッドを使う際のポイント
- Map内のすべてのキーと値のペアを一度に削除できる
- 引数は不要で、戻り値はundefined
- 削除後も同じMapインスタンスを使い回せるため、新しいオブジェクトを生成し直す必要がない
- 特定の要素だけを削除したい場合は
delete()メソッドを使う - 要素数を確認するには
sizeプロパティを利用する
-
JavaScriptの関数プロトタイプとは?仕組みと使い方を解説
JavaScriptで作成されたすべての関数には、JavaScriptエンジンによって自動的にprototypeプロパティが追加されます。このprototypeプロパティはオブジェクトであり、デフォルトではconstructorプロパティを含んでいます。関数のプロトタイプには、以下のようにしてアクセスできます。functionName.prototypeコンストラクタ関数を使ってオブジェクトを生成する場合、このprototypeプロパティを活用することで、同じコンストラクタから作成された複数のオブジェクト間でメソッドやプロパティを効率的に共有することができます。これにより、各インスタンスごとに
-
JavaScriptでのメソッド借用:call()・apply()・bind()の使い方を解説
JavaScriptでは、call()、apply()、bind()という3つのメソッドを使うことで、あるオブジェクトが持つメソッドを別のオブジェクトが「借用」できます。これは、本来そのメソッドを持たないオブジェクトに対して、thisの参照先を差し替えてメソッドを実行できる便利なテクニックです。 3つのメソッドの違い call():引数をカンマ区切りで個別に渡し、即座に関数を実行します。 apply():引数を配列(または配列風オブジェクト)として渡し、即座に関数を実行します。 bind():thisを固定した新しい関数を返すだけで、即座には実行されません。返された関数は後から好きなタイミン