简单总结ES6的Map

ES6的Map

Map结构提供了“值—值”的对应,如果需要键值对的数据结构,Map比Object更合适。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键,灵活性比较高。

let map = new Map();
let obj = {p: "Hello World"};
//新增
map.set(obj, "content")
m.get(obj) // "content"
//验证和删除操作
map.has(obj) // true
map.size(obj) // 1 -> 返回成员总数
map.clear(obj) // true清除所有成员
map.delete(obj) // true

注意点

  • 如果Map中的某一键值为对象,get的时候不能将整个对象写在里面,需要写该对象的引用,这样才是指向同一个内存地址;
  • 简单类型值只要两个值严格相等则可以像上面这样做。

遍历方法

  • map.keys()可以拿到所有的键名
  • map.values()可以拿到所有的键值
  • map.entries()返回所有成员
  • map.forEach()可以遍历所有成员,类似JS中本来就有的forEach方法:
map.forEach(function(value, key, map) {
  console.log("Key: %s, Value: %s", key, value);
});

数据结构互换

  • map转换为数组:...map即可
  • 数组转换为map,只需要将数组传入map构造函数
  • Map 转为对象:需要手动遍历转换,只有在所有键都为字符串的时候才可行
  • Map转换为JSON:可以在数组或者对象的基础上操作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.Set 基本用法 ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本...
    雨飞飞雨阅读 1,873评论 0 7
  • 1、Set 1.1概念:ES6提供了新的数据结构Set,它类似数组,但是成员的值都是唯一的。 eg:const s...
    Kris_lee阅读 2,542评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 语法 new Map([iterable]) 参数:可以是数组或者其他的可迭代对象.null会被当作undefin...
    一二三kkxx阅读 34,179评论 1 12
  • 红叶知花落,绿树寒凄凉。 万花秋去时,风吹雪夜兮。 百鸟朝天鸣,寒霜落满地。 千古人才出,唯吾何处去。 中秋佳节日...
    90后小诗人阅读 729评论 1 3