ES6__数据结构 Map

/*
 数据结构 Map
*/
/*
* 字典:是用来存储不重复的key的hash结构。不同于集合(Set)的是,字典使用的是[键,值]的形式来储存数据的。
*javaScript 的对象(Object:{})只能用字符串当作键。这给它的使用带来了很大的限制。
*为了解决这个问题,Es6提供了Map数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object结构提供了
“字符串-值”的对应,Map结构提供了“值-值”的对应,是一种更完善的hash结构实现。如果你需要“键值对”的数据结构,Map比Object更合适。
*/
// 1 如何创建一个Map
const map = new Map({
    ['a',1],
    ['b',2]
})
console.log(map)
// 2 Map的属性
console.log(map.size)
// 3 Map 类的方法
// 1.set(key,value)设置键名key对应的键值为value,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就新生成该键。
map.set('xiao','shang').set('xie','shen').set('xiao','ming');
console.log(map)
// 2.get(key) get方法读取key对应的键值,如果找不到key,返回undefind.
console.log(map.get('xie'));
console.log(map.get('x'));
// 3.delete(key)删除某个键,返回true。如果删除失败,返回false
console.log(map.delete('a'))
console.log(map)
console.log(map.delete('a'))
// 4.has(key) 方法返回一个布尔值,表示某个键是否在当前Map对象之中。
console.log(map.has('a'));
console.log(map.has('xiao'));
// 5.clear() 清除所有数据,没有返回值。
// map.clear();
// console.log(map);
// 6.keys() 返回键名的遍历器
console.log(map.keys())
// 7.values() 返回键值的遍历器
console.log(map.values())
// 8.entries() 返回键值对的遍历器
console.log(map.entries())
// 9.forEach() 使用回调函数遍历每个成员
map.forEach(function(key,value,map){
    console.log(key + ':' value)
})
//Map 在使用过程中的一些注意事项:
map.set(NaN,10).set(NaN,100);
console.log(map); //NaN 100
map.set({},'x').set({},'y');
console.log(map);
console.log({} === {}) //false

//map里面的key的排列顺序是按照添加顺序进行排列的。

 

posted @ 2018-04-09 14:25  晓之殇  阅读(131)  评论(0编辑  收藏  举报