六、es6 map

一、map的特点

JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。

为了解决这个问题,ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。

let m = new Map();
let myInfo = {name: ‘shangyy‘, age: 18};
console.log(m.set(myInfo,‘person‘)); // Map { { name: ‘shangyy‘, age: 18 } => ‘person‘ }
console.log(m.get(myInfo)); // person
console.log(m.has(myInfo)); // true
console.log(m.size); // 1
m.delete(myInfo)
console.log(m) // Map {}
let m= new  Map([
  [‘name‘, ‘shangyy‘ ],
  [‘age‘, 18],
])
console.log(m) // Map { ‘name‘ => ‘shangyy‘, ‘age‘ => 18 }

// 实现原理
let m1 = new Map();
let lists=[
  [‘name‘, ‘shangyy‘ ],
  [‘age‘, 18],
];
lists.forEach(([key,value]) => {
  m1.set(key,value);
});
console.log(m1); // Map { ‘name‘ => ‘shangyy‘, ‘age‘ => 18 }
let m= new Map();
console.log(m.set(1,‘aaa‘).set(1,‘bbb‘).get(1)); // bbb
console.log(m.set([1],‘aaa‘).get([1])); // undefined

原文地址:https://www.cnblogs.com/shangyueyue/p/10036195.html

时间: 2024-10-16 16:01:32

六、es6 map的相关文章

第六讲 map

2.  map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响.对于迭代器来说,可以修改实值,而不能修改key. 3.  map的功能 自动建立Key - value的对应.key 和 value可以是任意你需要的类型. 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次. 快速插入Key - Value 记录. 快速删除记录 根据Key 修

【JAVA】六 JAVA Map 一 HashMap

[JAVA]六 JAVA Map 一 HashMap JDK API java.util Interface Map Type Parameters: K - the type of keys maintained by this map V - the type of mapped values All Known Subinterfaces: Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, LogicalMe

es6 Map,Set 和 WeakMap,WeakSet

这些是新加的集合类型,提供了更加方便的获取属性值的方法,不用像以前一样用hasOwnProperty来检查某个属性是属于原型链上的呢还是当前对象的.同时,在进行属性值添加与获取时有专门的get,set 方法. // Sets var s = new Set(); s.add("hello").add("goodbye").add("hello"); s.size === 2; s.has("hello") === true;

ES6 Map/WeakMap

JS的对象本身就是个键值结构,ES6为什么还需要加Map呢,它与普通的JS对象有何区别? 一.Map 1. Map构造器 先看Map的简单用法 // 字符串作为key, 和JS对象类似 var map = new Map() // set map.set('name', 'John') map.set('age', 29) // get map.get('name') // John map.get('age') // 29 这么对代码,看起来确实没有JS对象简洁 但Map的强大之处在于它的ke

跟王老师学集合(六)Map接口

Map接口与HashMap实现类 主讲人:王少华  QQ群号:483773664 学习目标: 掌握Map接口的特点 掌握HashMap的使用 一.需求 建立国家英文简称和中文全名间的键值映射.比如CN--中华人民共和国 并通过key对value进行操作.比如根据"CN"可以查找到"中华人民共和国" 二.分析 Java集合框架中提供了Map接口,专门用来处理键-值映射数据的存储 Map中可以存储多个元素,每个元素都由两对象组成,即一个键对象和一个值对象,可以根据键实现

ES6 Map与Set

1.map <script type="text/javascript"> //ES6 提供了 Map 数据结构.它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键. const m = new Map();//创建Map const o = {p: 'Hello World'}; m.set(o, 'content')//对象也可以作为键 m.get(o) // "content" m.has(o) //

es6 map数据类型,要比set还很多

首先它支持多数据存储,具有增删查功能 set()设置 get()获取; has()查找; delete('obj')删除指定:clear()全部删除 size长度 let json={ name:"websong",skili:"web" }; //设置-增加 var msp=new Map(); msp.set(json,'iam'); console.info(msp) msp.set('niubi','111') console.info(msp) //取值g

es6 map()和filter()详解【转】

原文地址:http://www.zhangxinxu.com/wordpress/2013/04/es5%e6%96%b0%e5%a2%9e%e6%95%b0%e7%bb%84%e6%96%b9%e6%b3%95/ map方法 map方法的作用不难理解,“映射”嘛,也就是原数组被“映射”成对应新数组.下面这个例子是数值项求平方: var data = [1, 2, 3, 4]; var arrayOfSquares = data.map(function (item) { return item

Java集合篇六:Map中key值不可重复的测试

package com.test.collection; import java.util.HashMap; import java.util.Map; //Map中key值不可重复的测试 public class TestEquals { public static void main(String[] args) { String s1=new String("abc"); String s2=new String("abc"); Map map=new Has