ES6- - Map与Set
Map和Set 是 ES6 中新增的一种数据结构。Map为类似于Object的键值对结构,Set为成员唯一的类数组结构。以Map为例介绍两种数据结构的遍历方法。for...of
var map = new Map([
['age', 19],
['height', 180]
]);
或使用set()函数:var map = new Map();
map.set('age',19).set('height',180);
var set = new Set( [1, 2, 3, 4, 2, 1] ); //接收一个数组作为初始化[...set] //[1,2,3,4]
或使用add()函数: var set = new Set();set.add(1).add(2);
//由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。
for (let key of map.keys()) { console.log(key); }
for (let value of map.values()) {
console.log(value);
}
for (let item of map.entries()) {
console.log(`${ item[0] }: ${ item[1] }`);
}
map.forEach((key, value, map) => {
console.log(`${ key }: ${ value }`);
}); // forEach 的第二个参数用来绑定this绑定 this
var reporter = {
report(key, value) {
console.log(`${ key }: ${ value } by reporter object.`);
}
}
map.forEach(function (key, value) {// 使用箭头函数会导致这个 this 是 undefined
this.report(key, value);}, reporter)
//Set 结构没有以下方法
for (let [key, value] of map.entries()) {
console.log(`${ key }: ${ value }`);
}
for (let [key, value] of map) {
console.log(`${ key }: ${ value }`);
}
数据结构间的相互转化:
Map->数组 [...map]
数组->Map new Map([1,2])
Map->object:
for ( let [ key, value ] of map.entries() ){
obj[key] = value;
}
Object->Map:
let map1 = new Map();
for ( let item in a ){
map1.set( item,a[item] )
}
ES6- - Map与Set的更多相关文章
- ES6 & Map & hashMap
ES6 & Map & hashMap 01 two-sum https://leetcode.com/submissions/detail/141732589/ hashMap ht ...
- js es6 map 与 原生对象区别
区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...
- ES6 map与filter
ES6 map与filter 1.map let arr1 = [1,2,3]; let arr2 = arr1.map((value,key,arr) => { console.log(val ...
- ES6 Map to Array
ES6 Map to Array function differentSymbolsNaive(str) { // write code here. const map = new Map(); co ...
- ES6 Map All In One
ES6 Map All In One Map 字典/地图 Set 集合 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...
- ES6 Map vs ES5 Object
ES6 Map vs ES5 Object Map vs Object https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...
- es6 & map & set
es6 & map & set Map & WeakMap https://developer.mozilla.org/en-US/docs/Web/JavaScript/Re ...
- ES6 Map/WeakMap
最近项目用ES6来写,许多语法都要逐步熟悉呀,今天收藏下Map用法 1.Map构造器 // 字符串作为key, 和JS对象类似 var map = new Map() // set map.set(' ...
- ES6 - Map
含义和基本用法 Map对象就是简单的键值对映射.其中的键和值可以使任意值.(ps : 对象的键只能是字符串 ) JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构) ...
- 六、es6 map
一.map的特点 JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 ...
随机推荐
- DELPHI7 ADO二层升三层新增LINUX服务器方案
DELPHI7 ADO二层升三层新增LINUX服务器方案 引子:笔者曾经无数次在用户的LINUX服务器上创建一个WINDOWS虚拟机,用于运行自己DELPHI开发中间件. 现在再不需要如此麻烦了. 咏 ...
- IDEA启动Springboot时,解决报错java.lang.NoClassDefFoundError: javax/servlet/Filter
如下所示,将spring-boot-starter-tomcat依赖中的<scope>provided</scope>注释掉 <dependency> <gr ...
- [LINUX] 快速回收连接
i /etc/sysctl.conf 编辑文件,加入以下内容:net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_r ...
- 接口测试中模拟post四种请求数据
https://www.jianshu.com/p/3b6d7aa2043a 一.背景介绍 在日常的接口测试工作中,模拟接口请求通常有两种方法,fiddler模拟和HttpClient模拟. Fidd ...
- ubuntu18.04 无法连接有线
突然发现Ubuntu无法连接有线,插上网线后还是显示 Cable unplugged. 参考这篇文章:https://zhuanlan.zhihu.com/p/32924819 因为我无线网卡正常工作 ...
- elasticsearch jestclient api
1.es search sroll 可以遍历索引下所有数据 public class TestDemo { @Test public void searchSroll() { JestClientFa ...
- C# Newtonsoft.Json解析json字符串处理 - JToken 用法
//*调用服务器API(获取可以处理的文件) //1.使用JSON通信协议(调用[待化验任务API]) String retData = null; { JToken json = JToken.Pa ...
- Qt编写控件属性设计器11-导入xml
一.前言 上一篇文章负责把设计好的控件数据导出到了xml文件,本偏文章负责把导出的xml数据文件导入,然后在画布上自动生成对应的控件,Qt内置的xml数据解析功能,非常强大,都封装在QtXml组件中, ...
- Hadoop记录-Apache hadoop+spark集群部署
Hadoop+Spark集群部署指南 (多节点文件分发.集群操作建议salt/ansible) 1.集群规划节点名称 主机名 IP地址 操作系统Master centos1 192.168.0.1 C ...
- Laya的对象唯一标识
Egret中是obj.hashcode Laya中是obj["$_GID"]