Map 和 WeakMap 数据结构

Map 和 WeakMap 是ES6 新增的数据结构

一、Map

它们本质与对象一样,都是键值对的集合,但是他们与 Object 对象主要的不同是,键可以是各种类型的数值,而Object 对象的键 只能是字符串类型或者Symbol类型值,Map 和 WeakMap 是更为完善的Hash结构。

1.对象 和 Map

//----------- 对象 --------------

var keyObj = {}

var dataObj = {}

dataObj[keyObj] = ‘大家好‘

虽然表面上看 dataObj 对象的键是对象 keyObj,其实不是,dataObj[keyObj] 会将 keyObj 转换为字符串 ‘[object Object]‘

//------------- Map ----------

时间: 2024-12-26 17:46:56

Map 和 WeakMap 数据结构的相关文章

ES6 中的 Set、Map 和 WeakMap

ES6 新增了几种集合类型,本文介绍 Set.Map 和 WeakMap.比较新的 Firefox.Chrome(需要在 about:flags 启用实验性 JavaScript)以及 IE11 都有不同程度的实现.需要注意的是,ES6 规范会一直调整,本文只以当前规范及浏览器实现为准. Set(数组基础数据去重) Set 是 ES6 新增的有序列表集合,它不会包含重复项.之前我们通常用对象(Object)或者数组(Array)来实现没有重复项的集合.但对象会对 key 进行 toString(

ES6 - 基础学习(12): Set、WeakSet、Map、WeakMap补充

Map与其他数据结构的互相转换 (1)Map 转为数组.数组 转为 Map (2)Map 转为对象.对象转为 Map (3)Map 转为 JSON.JSON 转为 Map 原文地址:https://www.cnblogs.com/donghuang/p/12405005.html

javascript新增加的数据结构: Set Map WeakSet WeakMap

一.Set ES6提供新的数据结构Set,类似于Array,不过Array中的值可以重复,但是Set中的值不可以重复 声明: Set函数是一个构造函数 let set = new Set([1,2,3,2]) console.log((new Set([1,2,3,2])).size) // 3 console.log((new Set([NaN, NaN])).size) // 1 console.log((new Set([{}, {}])).size) // 2 console.log((

ES6新特性:Javascript中的Map和WeakMap对象

Map对象 Map对象是一种有对应 键/值 对的对象, JS的Object也是 键/值 对的对象 : ES6中Map相对于Object对象有几个区别: 1:Object对象有原型, 也就是说他有默认的key值在对象上面, 除非我们使用Object.create(null)创建一个没有原型的对象: 2:在Object对象中, 只能把String和Symbol作为key值, 但是在Map中,key值可以是任何基本类型(String, Number, Boolean, undefined, NaN..

Js基础知识7-Es6新增对象Map和set数据结构

前言 JavaScript中对象的本质是键值对的集合,ES5中的数据结构,主要是用Array和Object,但是键只能是字符串.为了弥补这种缺憾,ES6带来了一种新的数据结构Map. Map也是键值对的集合,只是键不仅可以是字符串还可以是其他数据类型,比如:对象(是不是很神奇).请看下面例子..下面话不多说了,来一起看看详细的介绍吧. Map 对象 Map结构提供了“值—值”的对应,任何值(对象或者原始值) 都可以作为一个键或一个值,是一种更完善的Hash结构实现.如果你需要“键值对”的数据结构

Map()--es6新增数据结构

1.实例属性和操作方法 1)size属性 const map = new Map(); map.set('foo', true); map.set('bar', false); console.log(map.size); 2)set(key, value) 3)get(key) 如果找不到key,返回undefined 4)has(key) 5)delete(key) 6)clear() 清除所有成员 2.遍历方法 -keys():返回键名的遍历器. -values():返回键值的遍历器. -

Map - 与其他数据结构的互相转换

Map 转为数组 const myMap = new Map() .set(true, 7) .set({foo: 3}, ['abc']); [...myMap] // 使用扩展运算符(...) // [ [ true, 7 ], [ { foo: 3 }, [ 'abc' ] ] ] 数组 转为 Map new Map([ [true, 7], [{foo: 3}, ['abc']] ]) // Map { // true => 7, // Object {foo: 3} => ['abc

ES6 之 Set数据结构和Map数据结构 Iterator和for...of循环

ECMAScript 6 入门 Set数据结构 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过add方法向Set结构加入成员,结果表明Set结构不会添加重复的值. 向S

es6-Set和Map数据结构

Set 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过add方法向 Set 结构加入成员,结果表明 Set 结构不会添加重复的值. Set 函数可