Set和Map
Set:类似数组 成员的值是唯一的 下有 add(),has(),delete(),clear(),size 等方法
Map:类似于对象 成员的值是唯一的 下有 set(),has(),delete(),clear(),size 等方法
1.set下的方法
const set = new Set(); //////////////这里的小set可以换成别的,千万不要以为就是set
set.add(2).add('2').add(4); //添加
console.log(set); //Set(3) {2, "2", 4}
//可以直接把数组写进去
var arr = [1,2,3,4,2,4,5,2,1,4,5,5,7];
const set2 = new Set(arr);
console.log(set2); //{1, 2, 3, 4, 5, 7}

//has() 是否set成员 返回true false
set.has(2) //true

//delete() 删除
set.delete(3);

//clear() 清除所有
set.size //3 set 的长度

2.map 下的方法
//map可以接受一个数组作为参数
var m = new Map([['name','a'],['age',10],['a',3]]);
//或者
var arr=[['name','a'],['age',10],['a',3]]
var m = new Map(arr);//Map(3) {"name" => "a", "age" => 10, "a" => 3}
//map的键可以是其它的类型 键值对
var m = new Map()
m.set('name','abc').set('age',20);
var name1 = 'name';
m.get(name1);//"abc"
//可以为其它类型
m.set(123,'123');
m.set(true,'124');
m.set(undefined,'124');
var a = {msg:'hello'};
m.set(a,'name');//{"name" => "abc", "age" => 20, 123 => "123", true => "124", undefined => "124", 
,Object => "name"}
m.get(a);//"name"

//has(),delete(),clear(),size方法同上

/***Set 和 Map 的遍历方法***/
//遍历 方法 keys()--键的值 value()--值 entries()--键值对

1.set 的遍历方法
var arr2 = new Set([1,2,3,4,2,4,5,2,1,4,5,5,7]);
for(let e of arr2.entries()){
console.log(e);//获取到的是去重后的 键值对 键==值
};
for(let k of arr2.keys()){
console.log(k);//获取到的是键
};
for(let v of arr2.values()){
console.log(v);//获取到的是值
};

2. map 的遍历方法
var m = new Map([['name','a'],['age',10],['a',3]]);
for(let e of m.entries()){
console.log(e);// 获取的是键值对 ["name", "a"] ["age", 10] ["a", 3]
};

for(let k of m.keys()){
console.log(k);// 获取的是键 name age a
};

for(let v of m.values()){
console.log(v);// 获取的是值 a 10 3
};

文文---Set,Map的更多相关文章

  1. 学习JQuery中文文档之map()函数和get()函数

    今天学到一个新的函数map(). map(callback) 官方概述: 将一组元素转换成其他数组(不论是否是元素数组) 你可以用这个函数来建立一个列表,不论是值.属性还是CSS样式,或者其他特别形式 ...

  2. Phoenix综述(史上最全Phoenix中文文档)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/users/6cb45a00b49c/latest_articles 网上关于P ...

  3. Spring中文文档

    前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...

  4. jQuery 3.1 API中文文档

    jQuery 3.1 API中文文档 一.核心 1.1 核心函数 jQuery([selector,[context]]) 接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素. jQ ...

  5. Google Map Api 谷歌地图接口整理

    一:基本知识: 1. 使用谷歌地图 API 的第一步就是要注册一个 API 密钥,需要注重一下两点: 1.假如使用 API 的页面还没有发布,只是在本地调试,可以不用密钥,随便用个字符串代替就可以了. ...

  6. npm的package.json字段含义中文文档

    简介 本文档有所有package.json中必要的配置.它必须是真正的json,而不是js对象. 本文档中描述的很多行为都受npm-config(7)的影响. 默认值 npm会根据包内容设置一些默认值 ...

  7. 内置函数 -- filter 和 map

    参考地址:http://www.cnblogs.com/sesshoumaru/p/6000788.html 英文文档: filter(function, iterable) Construct an ...

  8. Python内置函数(34)——map

    英文文档: map(function, iterable, ...) Return an iterator that applies function to every item of iterabl ...

  9. Python内置函数(40)——map

    英文文档: map(function, iterable, ...) Return an iterator that applies function to every item of iterabl ...

随机推荐

  1. Netty实战 - 1. 基本概念

    1. Netty简介 Netty是由JBOSS提供的一个java开源框架.它提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序.Netty是一个基于NI ...

  2. PyCharm使用Anaconda新建的环境

    首先,创建一个环境用来安装Tensorflow: conda create -n tensorflow python=3.5.6 安装以后,在Anaconda Navigator可以看到已经增加了一个 ...

  3. Java里进制转换(二进制、八进制、十进制、十六进制)

    // 十进制转其它进制(二进制,八进制,十六进制) int k = 17; System.out.println(Integer.toBinaryString(k));// 转二进制 System.o ...

  4. 安装最新版RabbitMQ v3.7.13 以及基本配置

    之前用的老版本,新项目新气象,RabbitMQ也用最新版吧 首先打开官网:http://www.rabbitmq.com/install-rpm.html 先到右侧导航栏来看一下 : 第一个红框是指的 ...

  5. ffmpeg中AVOption的实现分析

    [时间:2017-10] [状态:Open] [关键词:ffmpeg,avutil,AVOption] 0 引言 AVOptions提供了一种通用的options机制,可以用于任意特定结构的对象. 本 ...

  6. Replication基础(六) 复制中的三个线程(IO/SQL/Dump)

    Reference:  https://blog.csdn.net/sun_ashe/article/details/82181811?utm_source=blogxgwz1 简介在MySQL复制技 ...

  7. 【资料下载区】【GK101固件】更新日期2017/1/11

    <GK101任意波发生器>升级固件发布(版本:1.0.2build539)<GK101任意波发生器>升级固件发布(版本:1.0.2build851)<GK101任意波发生 ...

  8. Python threading 多参数传递方法

    今天开启线程传递参数的时候,出现了一个小问题,一直不能传递多个参数,如下 import threading thread1 = threading.Thread(target=fun, args=[1 ...

  9. Http url MVC Request Query Form 传参专贴

    一.工具区 [参考]postman中 form-data.x-www-form-urlencoded.raw.binary的区别--转 二..net MVC 三..net WebForm 四.Java ...

  10. Groovy和Java互调

    Scala和Java为静态语言,Groovy为动态语言 Scala: 函数式编程,同时支持面向对象 Groovy: jvm上的脚本,较好兼容java语法,Groovy加强了Java集成. 可配置化的优 ...