Map
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
Map ãªãã¸ã§ã¯ãï¼å¯¾å¿è¡¨ï¼ã¯ãã¼ã¨å¤ã®ãã¢ãä¿æãããã¼ãæåã«æ¿å
¥ãããé åºãè¦ãã¦ãã¾ãã
ãã¼ãå¤ã«ã¯ä»»æã®å¤ï¼ãªãã¸ã§ã¯ãã¨ããªããã£ãå¤ï¼ã使ç¨ãããã¨ãã§ãã¾ãã
試ãã¦ã¿ã¾ããã
const map = new Map();
map.set("a", 1);
map.set("b", 2);
map.set("c", 3);
console.log(map.get("a"));
// äºæ³ãããçµæ: 1
map.set("a", 97);
console.log(map.get("a"));
// äºæ³ãããçµæ: 97
console.log(map.size);
// äºæ³ãããçµæ: 3
map.delete("b");
console.log(map.size);
// äºæ³ãããçµæ: 2
解説
Map ãªãã¸ã§ã¯ãã¯ããã¼ã¨å¤ã®ãã¢ã®ã³ã¬ã¯ã·ã§ã³ã§ããMap ã®ãã¼ã¯ä¸åº¦ããåºç¾ãã¾ãããMap ã®éåã®ä¸ã§ä¸æã§ããMap ãªãã¸ã§ã¯ãã¯ãã¼ã¨å¤ã®ãã¢ã§å復å¦çããã¾ããfor...of ã«ã¼ãã¯ãåå復å¦çã«å¯¾ã㦠[ãã¼, å¤] ã¨ãã 2 ã¤ã®ã¡ã³ãã¼ãããªãé
åãè¿ãã¾ããå復å¦ç㯠æ¿å
¥é ã§è¡ããã¾ããããã¯ãããããã®ãã¼ã¨å¤ã®ãã¢ã set() ã¡ã½ããã«ãã£ã¦æåã«å¯¾å¿è¡¨ã«æ¿å
¥ãããé çªã«å¯¾å¿ãã¾ãï¼ã¤ã¾ãã set() ãå¼ã°ããã¨ãã«ã¯ããã§ã«åãå¤ãæã¤ãã¼ã対å¿è¡¨ã«ãªãã£ãã¨ãããã¨ã§ãï¼ã
仿§æ¸ã§ã¯ããå¹³åãã¦ãéåã®è¦ç´ æ°ã«å¯¾ãã¦ãµããªãã¢ãªã¢ã¯ã»ã¹æå»ãæä¾ããã対å¿è¡¨ãå®è£ ãããã¨ãè¦æ±ãã¦ãã¾ãããããã£ã¦ãè¤é度ã O(N) ãããé«ãå ´åãå é¨çã«ã¯ããã·ã¥è¡¨ï¼O(1) ã«ãã¯ã¢ããï¼ãæ¢ç´¢æ¨ï¼O(log(N)) ã«ãã¯ã¢ããï¼ããããã¯ä»ã®ãã¼ã¿æ§é ã¨ãã¦è¡¨ããã¨ãå¯è½ã§ãã
ãã¼ã®ç価æ§
ãã¼å¤ã®ç価æ§ã¯ SameValueZero ã¢ã«ã´ãªãºã ã«åºã¥ãã¦è©ä¾¡ããã¾ããï¼ä»¥å㯠SameValue ã使ããã¦ããã 0 㨠-0 ãç°ãªããã®ã¨ãã¦æ±ããã¦ãã¾ããããã©ã¦ã¶ã¼ã®äºææ§ããã§ãã¯ãã¦ãã ããï¼ããã㯠NaN ã NaN ã¨ç価ã¨è¦ãªããã®ã§ï¼NaN !== NaN ã§ããï¼ãä»ã®å¤ã¯ãã¹ã¦ === æ¼ç®åã®æå³ã«å¾ã£ã¦ç価æ§ãèæ
®ããã¾ããã¾ãããªãã¸ã§ã¯ããã¼ã®å ´åãç価æ§ï¼åããã©ããï¼ã®å¤å®ã¯ãªãã¸ã§ã¯ãã®å䏿§ã«åºã¥ãã¾ããå¤ã§ã¯ãªããåç
§ã«ãã£ã¦æ¯è¼ããã¾ããä¾ãã°ãMap ãªãã¸ã§ã¯ãã®ä½¿ç¨ ãã覧ãã ããã
Object 㨠Map ã®æ¯è¼
Object 㨠Map ã¯ä¼¼ã¦ãã¾ããã©ã¡ãããã¼ãå¤ã«è¨å®ãããããããã®å¤ãåãåã£ããããã¼ãåé¤ãããããã¼ã«ä½ããæ ¼ç´ããã¦ãããã©ãããå¤å®ããããããã¨ãã§ãã¾ãããã®æå³ã§ï¼ããã¦ä»ã®çµã¿è¾¼ã¿ãªãã¸ã§ã¯ãããªãã£ãããï¼ã徿¥ Object 㯠Map ã¨ãã¦ä½¿ããã¦ãã¾ããã
ããããããã¤ãã®å ´é¢ã§ Map ã®æ¹ãåããããªéè¦ãªéããããã¾ãã
| Map | Object | |
|---|---|---|
| å¶çºçãªãã¼ |
Map ã¯æ¢å®ã§ã¯ä½ããã¼ãæã£ã¦ãã¾ãããæç¤ºçã«è¨å®ãããã®ã ããå«ã¿ã¾ãã
|
ã¡ã¢: ES5 ã§ã¯ã
|
| ã»ãã¥ãªã㣠|
Map ã¯ã¦ã¼ã¶ã¼ãæä¾ãããã¼ã¨å¤ã使ç¨ãã¦ãå®å
¨ã§ãã
|
ã¦ã¼ã¶ã¼ãæä¾ãããã¼ã¨å¤ã®ãã¢ã |
| ãã¼ã®å |
Map ã®ãã¼ã¯ããããå¤ããªããã¨ãã§ãã¾ã
ï¼é¢æ°ããªãã¸ã§ã¯ããããããããªããã£ããªã©ï¼ã
|
Object ã®ãã¼ã¯æååã¾ãã¯ã·ã³ãã«ã§ãªããã°ãªãã¾ããã
|
| ãã¼ã®é åº |
|
é常ã®
ãã®é åºã¯ ECMAScript 2015 ã§åãã¦èªèº«ã®ããããã£ã«å¯¾ãã¦ã®ã¿å®ç¾©ããã¾ãããã ECMAScript 2020 ã§ã¯ç¶æ¿ãããããããã£ã«å¯¾ãã¦ãåæ§ã«é åºãå®ç¾©ããã¦ãã¾ãã
ãããããªãã¸ã§ã¯ãã®ããããã£ããã¹ã¦å復å¦çãããåä¸ã®åä¸ã®ã¡ã«ããºã ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã
ï¼ |
大ãã |
Map ã®ä¸ã®ã¢ã¤ãã æ°ã¯ã size ããããã£ã§ç°¡åã«å¾ããã¨ãã§ãã¾ãã
|
Object å
ã®ã¢ã¤ãã ã®æ°ã決å®ãããã¨ã¯ãããåããã©ããå¹ççã§ã¯ããã¾ãããä¸è¬çãªæ¹æ³ã¯ã Object.keys() ããè¿ãããé
åã® length ãéãã¦è¡ãæ¹æ³ã§ãã
|
| å復å¦ç |
Map 㯠å復å¯è½ ã§ãã®ã§ãç´æ¥å復å¦çãè¡ããã¨ãã§ãã¾ãã
|
Object
ã§ã¯å復å¦çãè¡ãã®ã«ãããã¤ãã®å½¢ã§ãã¼ã®ä¸è¦§ãåå¾ãã¦ããã®ããã§å復å¦çãè¡ãå¿
è¦ãããã¾ãã
ã¡ã¢:
|
| æ§è½ |
ãã¼ã¨å¤ã®ãã¢ãé »ç¹ã«è¿½å ãããåé¤ããããããã¨ãæ±ããããå ´é¢ã§ã¯ãæ§è½ãããè¯ããªãã¾ãã |
ãã¼ã¨å¤ã®ãã¢ãé »ç¹ã«è¿½å ãããåé¤ããããããã¨ã«æé©åããã¦ãã¾ããã |
| ã·ãªã¢ã©ã¤ãºã¨è§£é |
ã·ãªã¢ã©ã¤ãºãè§£éã®ããã®ãã¤ãã£ããªå¯¾å¿ã¯ããã¾ããã
ï¼ãã ãã replacer 弿°ã§ |
JSON ãã |
ãªãã¸ã§ã¯ãããããã£ã®è¨å®
Map ãªãã¸ã§ã¯ãã«å¯¾ãã¦ãªãã¸ã§ã¯ãããããã£ãè¨å®ããã¨æ£ããåä½ãã¾ãããæ··ä¹±ãå¬ããã¨ãèãããã¾ãã
ãã¨ãã°ã次ã®ä¾ã¯ä¸å¿åä½ããããã«è¦ãã¾ãã
const wrongMap = new Map();
wrongMap["bla"] = "blaa";
wrongMap["bla2"] = "blaaa2";
console.log(wrongMap); // Map { bla: 'blaa', bla2: 'blaaa2' }
ãããããã®ããã«ããããã£ãè¨å®ããã¨ã Map ãã¼ã¿æ§é ã使ç¨ãã¾ãããä¸è¬çãªãªãã¸ã§ã¯ãã®æ©è½ã使ç¨ãã¾ãã 'bla' ã®å¤ã¯ã¯ã¨ãªã¼ãè¡ãããã® Map ã«æ ¼ç´ããã¾ããããã¼ã¿ã«ãã®ä»ã®æä½ãè¡ãã¨å¤±æãã¾ãã
wrongMap.has("bla"); // false
wrongMap.delete("bla"); // false
console.log(wrongMap); // Map { bla: 'blaa', bla2: 'blaaa2' }
Map ã«ãã¼ã¿ãæ ¼ç´ããæ£ããæ¹æ³ã¯ã set(key, value) ã¡ã½ããã使ç¨ããæ¹æ³ã§ãã
const contacts = new Map();
contacts.set("Jessie", { phone: "213-555-1234", address: "123 N 1st Ave" });
contacts.has("Jessie"); // true
contacts.get("Hilary"); // undefined
contacts.set("Hilary", { phone: "617-555-4321", address: "321 S 2nd St" });
contacts.get("Jessie"); // {phone: "213-555-1234", address: "123 N 1st Ave"}
contacts.delete("Raymond"); // false
contacts.delete("Jessie"); // true
console.log(contacts.size); // 1
Map 風ã®ãã©ã¦ã¶ã¼ API
ãã©ã¦ã¶ã¼ã® Map 風ãªãã¸ã§ã¯ã (ã¾ãã¯ãMap 風ãªãã¸ã§ã¯ãã) ã¯ãå¤ãã®ç¹ã§ Map ã®ããã«ãµãã¾ã Web API ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ãã
Map ã¨åæ§ã«ãé
ç®ã¯ãªãã¸ã§ã¯ãã«è¿½å ãããã®ã¨åãé çªã§èµ°æ»ã§ãã¾ãã
ã¾ããMap 風ãªãã¸ã§ã¯ã㨠Map ã¯åãååã§åãæåã®ããããã£ããã³ã¡ã½ãããæã¡ã¾ãã
ããããMap ã¨éããåé
ç®ã®ãã¼ã¨å¤ã«ã¯äºåã«å®ç¾©ãããç¹å®ã®åãã使ç¨ã§ãã¾ããã
使ç¨å¯è½ãªåã¯ã仿§æ¸ã® IDL å®ç¾©ã§è¨å®ããã¦ãã¾ãã
ãã¨ãã°ãRTCStatsReport ã¯ãã¼ã«ã¯æååããå¤ã«ã¯ãªãã¸ã§ã¯ããç¨ããªããã°ãªããªã Map 風ãªãã¸ã§ã¯ãã§ãã
ããã¯ã仿§æ¸ã® IDL ã§ä»¥ä¸ã®ããã«å®ç¾©ããã¦ãã¾ãã
interface RTCStatsReport {
readonly maplike<DOMString, object>;
};
Map 風ãªãã¸ã§ã¯ãã¯èªã¿åãå°ç¨ã®ãã¨ããèªã¿æ¸ãå¯è½ãªãã¨ãããã¾ãã(ä¸ã® IDL ã® readonly ãã¼ã¯ã¼ãã«æ³¨ç®ãã¦ãã ãã)
- èªã¿åãå°ç¨ã®
Map風ãªãã¸ã§ã¯ãã¯ãããããã£sizeã¨ãã¡ã½ããentries(),forEach(),get(),has(),keys(),values(),Symbol.iterator()ãæã¡ã¾ãã - æ¸ãè¾¼ã¿å¯è½ãª
Map風ãªãã¸ã§ã¯ãã¯ãããã«å ãã¦ã¡ã½ããclear(),delete(),set()ãæã¡ã¾ãã
ãããã®ã¡ã½ããã¨ããããã£ã¯ããã¼ã¨å¤ã®åã®å¶ç´ãé¤ãã¦ãMap ã®å¯¾å¿ããã¨ã³ãã£ãã£ã¨åæ§ã«ãµãã¾ãã¾ãã
以ä¸ã¯ãèªã¿åãå°ç¨ã® Map 風ãã©ã¦ã¶ã¼ãªãã¸ã§ã¯ãã®ä¾ã§ãã
ã³ã³ã¹ãã©ã¯ã¿ã¼
Map()-
æ°ãã
Mapãªãã¸ã§ã¯ããçæãã¾ãã
éçããããã£
Map[Symbol.species]-
æ´¾çã¯ã©ã¹ãçæããããã®ã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãã
éçã¡ã½ãã
Map.groupBy()-
ä¸ããããå復å¯è½ãªè¦ç´ ããä¸ããããã³ã¼ã«ããã¯é¢æ°ããè¿ãããå¤ã使ç¨ãã¦ã°ã«ã¼ãåãã¾ããæå¾ã«è¿ããã
Mapã¯ããã¹ã颿°ããå¾ããã䏿ã®å¤ããã¼ã¨ãã¦ä½¿ç¨ãã¦ãããåã°ã«ã¼ãã®è¦ç´ ã®é åãåå¾ããããã«ä½¿ç¨ã§ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
ãããã®ããããã£ã¯ Map.prototype ã§å®ç¾©ããããã¹ã¦ã® Map ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
Map.prototype.constructor-
ãã®ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã
Mapã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯Mapã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãã Map.prototype.size-
Mapãªãã¸ã§ã¯ãã®ä¸ã®ãã¼ã¨å¤ã®ãã¢ã®æ°ãè¿ãã¾ãã Map.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]ããããã£ã®åæå¤ã¯æåå"Map"ã§ãããã®ããããã£ã¯Object.prototype.toString()ã§ä½¿ç¨ããã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
Map.prototype.clear()-
Mapãªãã¸ã§ã¯ããããã¹ã¦ã®ãã¼ã¨å¤ã®ãã¢ãåé¤ãã¾ãã Map.prototype.delete()-
ãã®
Mapããããã¼ã§æå®ãããé ç®ãé¤å»ãã¾ãã Map.prototype.entries()-
Mapãªãã¸ã§ã¯ãã®åè¦ç´ ã®[key, value]ãããªã 2 ã¤ã®è¦ç´ ã®é åãæ¿å ¥é ã§å«ãæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã Map.prototype.forEach()-
Mapãªãã¸ã§ã¯ãã«åå¨ãããã¼ã¨å¤ã®ãã¢ã®æ°ã ããæ¿å ¥é ã«callbackFnãå¼ã³åºãã¾ããthisArg弿°ãforEachã«æ¸¡ãããå ´åãåã³ã¼ã«ããã¯ã®thiså¤ã¨ãã¦ä½¿ç¨ããã¾ãã Map.prototype.get()-
ãã®
Mapå ã®ãã¼ã«å¯¾å¿ããå¤ãè¿ãã¾ãã該å½ãããã¼ããªãå ´åã¯undefinedãè¿ãã¾ãã Map.prototype.getOrInsert()-
ãã®
Mapå ã«æå®ããããã¼ã«å¯¾å¿ããå¤ãè¿ãã¾ãããã¼ãåå¨ããªãå ´åã¯ããã®ãã¼ã¨æå®ãããããã©ã«ãå¤ãæã¤æ°ããé ç®ãæ¿å ¥ããæ¿å ¥ãããå¤ãè¿ãã¾ãã Map.prototype.getOrInsertComputed()-
ãã®
Mapå ã®æå®ããããã¼ã«å¯¾å¿ããå¤ãè¿ãã¾ãããã¼ãåå¨ããªãå ´åã¯ããã®ãã¼ã¨ãæå®ãããã³ã¼ã«ããã¯ããè¨ç®ãããããã©ã«ãå¤ãæã¤æ°ããé ç®ãæ¿å ¥ããæ¿å ¥ãããå¤ãè¿ãã¾ãã Map.prototype.has()-
è«çå¤ã§ãæå®ããããã¼ãæã¤é ç®ãããã®
Mapã«åå¨ãããã©ããã示ãå¤ãè¿ãã¾ãã Map.prototype.keys()-
ãã®
Mapãªãã¸ã§ã¯ãå ã®åè¦ç´ ã®ãã¼ãæ¿å ¥é ã§å«ã¾ãããæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã Map.prototype.set()-
ãã®
Mapã«ãæå®ããããã¼ã¨å¤ãæã¤æ°ããé ç®ã追å ãã¾ããã¾ãããã¼ããã§ã«åå¨ããå ´åã¯ãæ¢åã®é ç®ãæ´æ°ãã¾ãã Map.prototype.values()-
Mapãªãã¸ã§ã¯ãå ã®åè¦ç´ ã®å¤ãæ¿å ¥é ã§å«ã¾ãããæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã Map.prototype[Symbol.iterator]()-
Mapãªãã¸ã§ã¯ãå ã®åè¦ç´ ã®[key, value]ã®é åãæ¿å ¥é ã§å«ã¾ãããæ°ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
ä¾
>Map ãªãã¸ã§ã¯ãã®ä½¿ç¨
const myMap = new Map();
const keyString = "æåå";
const keyObj = {};
const keyFunc = () => {};
// å¤ãè¨å®ãã
myMap.set(keyString, "'æåå' ã¨çµã³ä»ããããå¤");
myMap.set(keyObj, "keyObj ã¨çµã³ä»ããããå¤");
myMap.set(keyFunc, "keyFunc ã¨çµã³ä»ããããå¤");
console.log(myMap.size); // 3
// å¤ãåå¾ãã
console.log(myMap.get(keyString)); // "'æåå' ã¨çµã³ä»ããããå¤"
console.log(myMap.get(keyObj)); // "keyObj ã¨çµã³ä»ããããå¤"
console.log(myMap.get(keyFunc)); // "keyFunc ã¨çµã³ä»ããããå¤"
console.log(myMap.get("æåå")); // "'æåå' ã¨çµã³ä»ããããå¤"ã keyString === 'æåå' ã§ãããã
console.log(myMap.get({})); // undefined, keyObj !== {} ã§ãããã
console.log(myMap.get(() => {})); // undefined, keyFunc !== () => {} ã§ãããã
NaN ã Map ã®ãã¼ã¨ãã¦ä½¿ç¨
NaN ãã¾ããã¼ã¨ãã¦ä½¿ããã¨ãã§ãã¾ãããã¹ã¦ã® NaN ã¯èªèº«ã¨çãããªãï¼NaN !== NaN ã¯çï¼ã«ããããããã以ä¸ã®ä¾ã¯åä½ãã¾ãããã㯠NaN ãäºãã«åºå¥ã§ããªãããã§ãã
const myMap = new Map();
myMap.set(NaN, "not a number");
myMap.get(NaN);
// "not a number"
const otherNaN = Number("foo");
myMap.get(otherNaN);
// "not a number"
for..of ã使ç¨ãã Map ã®å復å¦ç
対å¿è¡¨ã¯ for..of ã«ã¼ãã使ç¨ãã¦å復å¦çãè¡ããã¨ãã§ãã¾ãã
const myMap = new Map();
myMap.set(0, "zero");
myMap.set(1, "one");
for (const [key, value] of myMap) {
console.log(`${key} = ${value}`);
}
// 0 = zero
// 1 = one
for (const key of myMap.keys()) {
console.log(key);
}
// 0
// 1
for (const value of myMap.values()) {
console.log(value);
}
// zero
// one
for (const [key, value] of myMap.entries()) {
console.log(`${key} = ${value}`);
}
// 0 = zero
// 1 = one
forEach() ã§ Map ãå復å¦ç
対å¿è¡¨ã¯ forEach() ã¡ã½ããã使ç¨ãã¦å復ã§ãã¾ãã
myMap.forEach((value, key) => {
console.log(`${key} = ${value}`);
});
// 0 = zero
// 1 = one
Array ãªãã¸ã§ã¯ãã¨ã®é¢ä¿
const kvArray = [
["ãã¼1", "å¤1"],
["ãã¼2", "å¤2"],
];
// é常㮠Map ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ã£ã¦ããã¼ã¨å¤ã® 2 次å
é
åã対å¿è¡¨ã«å¤æãã
const myMap = new Map(kvArray);
console.log(myMap.get("ãã¼1")); // "å¤1"
// å±éæ¼ç®åã使ã£ã¦ã対å¿è¡¨ããã¼ã»å¤ã® 2 次å
é
åã«å¤æãã
console.log(Array.from(myMap)); // kvArray ã¨ã¾ã£ããåã Array ã表示ãã
// ãããã¯å±éæ¼ç®åããã¼ã¾ãã¯å¤ã®ã¤ãã¬ã¼ã¿ã¼ã«ä½¿ã£ã¦ããã¼ã¾ãã¯å¤ã®ã¿ã®é
åãå¾ã
console.log([...myMap]);
// ã¾ã㯠keys() ã values() ã®ã¤ãã¬ã¼ã¿ã¼ã使ç¨ãã¦é
åã«å¤æãã
console.log(Array.from(myMap.keys())); // ["key1", "key2"] ãåºåããã
Map ã®è¤è£½ã¨æ··å
Array ã¨åæ§ã«ã Map ã¯è¤è£½ãããã¨ãã§ãã¾ãã
const original = new Map([[1, "one"]]);
const clone = new Map(original);
console.log(clone.get(1)); // one
console.log(original === clone); // false ï¼ã·ã£ãã¼æ¯è¼ã«ä¾¿å©ï¼
ã¡ã¢:
ãã¼ã¿èªèº«ã¯è¤è£½ãããªããã¨ã«æ³¨æãã¦ããã¦ãã ãããè¨ãæããã°ããã㯠Map ã®ã·ã£ãã¼ã³ãã¼ã«ããã¾ããã
対å¿è¡¨ã¯ãã¼ã®åºææ§ãä¿æããªããæ··åå¯è½ã§ãã
const first = new Map([
[1, "one"],
[2, "two"],
[3, "three"],
]);
const second = new Map([
[1, "uno"],
[2, "dos"],
]);
// 2 ã¤ã®å¯¾å¿è¡¨ãæ··åãã¾ããéè¤ãããã¼ã¯å¾åã¡ã«ãªãã¾ãã
// ã¹ãã¬ããæ¼ç®åã¯åºæ¬çã« Map ã Array ã«å¤æãã¾ãã
const merged = new Map([...first, ...second]);
console.log(merged.get(1)); // uno
console.log(merged.get(2)); // dos
console.log(merged.get(3)); // three
Map 㯠Array ã¨æ··åãããã¨ãã§ãã¾ãã
const first = new Map([
[1, "one"],
[2, "two"],
[3, "three"],
]);
const second = new Map([
[1, "uno"],
[2, "dos"],
]);
// 対å¿è¡¨ã¨é
åãæ··åãã¾ããéè¤ãããã¼ã¯å¾åã¡ã«ãªãã¾ãã
const merged = new Map([...first, ...second, [1, "un"]]);
console.log(merged.get(1)); // un
console.log(merged.get(2)); // dos
console.log(merged.get(3)); // three
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-map-objects > |