![トモジのアイコン画像](https://10moji-blog.com/wp-content/uploads/2020/08/吹き出しトモジ.png)
Mapオブジェクトって何?
詳しく知りたい・・
本記事は、
上記のような方に向けて記事を書いています。
こんにちは、トモジです。
私はプログラミング未経験から独学で勉強して、
簡易的な動的サイト・ゲーム・サービスが作れる状態になりました。
本記事は、Mapオブジェクトに関して要点を
わかりやすく説明しております。
JavaScriptのMapオブジェクト
Mapオブジェクトは、
連想配列を管理するためのオブジェクトで
ES2015でようやく専用オブジェクトとして
提供されました。
![mapオブジェクトの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/e176b05ecfa8a0833e7b1faabee14c26-600x1024.png)
size
sizeとは、
Mapオブジェクトにある要素数を返します。
![sizeの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/size-1024x942.png)
sizeに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'フランケンおじさん');
map.set('birth', '1818年3月11日');
map.set('mail', 'franken311@st.com');
console.log('size : ' + map.size);
size : 3
set
setはキー(key)と値(value)の要素を追加して、
重複時は上書きします。
![setの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/set-1-1024x942.png)
setに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
get
getは、指定したキーの要素を取得します。
![getの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/get-1-1024x942.png)
getに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
console.log('get : ' + map.get('name'));
get : tomoji
has
hasは、
指定したキーの要素が存在するかを確認します。
![hasの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/has-1024x942.png)
hasに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
console.log('has(name) : ' + map.has('name'));
console.log('has(age) : ' + map.has('age'));
has(name) : true
has(age) : false
delete
deleteは、指定したキーの要素を削除します。
![deleteの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/delete-1024x942.png)
deleteに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
console.log('delete(前) : ' + map.has('name'));
map.delete('name');
console.log('delete(後) : ' + map.has('name'));
delete(前) : true
delete(後) : false
clear
clearは、全ての要素を削除します。
![clearの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/clear-1-1024x942.png)
clearに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
map.set('age', 34);
console.log('clear(前) : ' + map.size);
map.clear();
console.log('clear(後) : ' + map.size);
clear(前) : 2
clear(後) : 0
keys
keysは、全てのキーを取得します。
![keysの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/keys-1-1024x942.png)
keysに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
map.set('age', 34);
map.set('gender', 'male');
for(var key of map.keys()) {
console.log('key : ' + key);
}
key : name
key : age
key : gender
values
valuesは、全ての値の要素を取得します。
![valuesの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/values-1024x942.png)
valuesに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
map.set('age', 34);
map.set('gender', 'male');
for(var value of map.values()) {
console.log('value : ' + value);
}
value : tomoji
value : 34
value : male
entries
entriesは、全てのキーと値の要素を取得します。
![entriesの説明図](https://10moji-blog.com/wp-content/uploads/2020/12/entries-2-1024x942.png)
entriesに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
map.set('age', 34);
map.set('gender', 'male');
for(var [key,value] of map.entries()) {
console.log('entries : ' + key + ',' + value);
}
entries : name,tomoji
entries : age,34
entries : gender,male
forEach
forEachは、マップ内の要素を順番に処理します。
![forEachの説明図1](https://10moji-blog.com/wp-content/uploads/2020/12/a9bfeb433e051859ee65f641e9826c69-3-1024x942.png)
![forEachの説明図2](https://10moji-blog.com/wp-content/uploads/2020/12/forEach-1024x942.png)
forEachに関して
// Mapオブジェクトの生成
var map = new Map();
map.set('name', 'tomoji');
map.set('age', 34);
map.set('gender', 'male');
map.forEach(function(value, key, map){
console.log('key : ' + key);
if(map.get(key) == 'tomoji'){
console.log('value : ' + value + 'さん');
}else{
console.log('value : ' + value);
}
console.log('===================');
});
key : name
value : tomojiさん
===================
key : age
value : 34
===================
key : gender
value : male
===================
まとめ
最後にこの記事のポイントをまとめておきます。
Mapオブジェクト
size
要素数を取得set
キーと値の要素を追加get
指定したキーの要素を取得has
指定したキーの要素が存在するかを確認delete
指定したキーの要素を削除clear
全ての要素を削除keys
全てのキーを取得values
全ての値の要素を取得entries
全てのキーと値の要素を取得forEach
マップ内の要素を順番に処理