JavaScript之Map對象


前言

  工欲善其事,必先利其器。這是一款以前在前端項目中沒有使用過的、有趣的對象,咱來看看如何使用~

並非arrayObj.map(function)  

//arrayObj.map與arrayObj.forEach方法類似
[].map(function(itemValue, itemIndex, array) {
    // ...
});

Map()

介紹

  集合中的鍵和值可以是任何類型。如果使用現有密鑰向集合添加值,則新值會替換舊值。

var mp = new Map();
clear
    從映射中移除所有元素。
delete
    從映射中移除指定的元素。
forEach:mapObject.forEach(function(value,key,mapObject){}[, thisArg])
    對映射中的每個元素執行指定操作。
get
    返回映射中的指定元素。
has
    如果映射包含指定元素,則返回 true。
set
    添加一個新建元素到映射。
toString
    返回映射的字符串表示形式。
valueOf
    返回指定對象的原始值。

 

使用

var users = new Map();
users.set("johnny",{name:'johnny',age:23,sex:'M'});
users.set("jane",{name:'jane',age:21,sex:'F'});
users.set("mary",{name:'mary',age:24,sex:'F'});
 
//1.mapObject.forEach
users.forEach(function(key,users){
    console.log(key);
});

//2.mapObject的values如何遍歷
var iter = users.values();
var values = new Array();
var item = null;
while((item=iter.next()).done!=true){//還未遍歷完
	values.push(item.value);
	item=null;
}
values.forEach(function(val,idx,array){
	console.log("["+idx+"] "+JSON.stringify(array[idx]));
});

 

兼容性

  IE8+

推薦文獻

  [1] Js中的Map對象

  [2] 修改IE不兼容MAP()的問題,自定義實現JavaScript的Map對象

  [3] Map - Mozilla


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM