es6的基本数据详解
| 1 2 3 |
var s = new Set(); [2,3,5,4,5,2,2].map(x =>s.add(x)); for(i of s){console.log(i)} |
| 1 2 |
var set = new Set([1,2,3,4,4]); console.log([...set]); |
| 1 2 3 4 |
let set =new Set(); set.add({}); set.add({}); console.log(set.size); //输出值为2 |
- Set.prototype.constructor:构造函数,默认就是Set函数
- Set.prototype.size:返回Set实例的成员总数
- add(value):添加某个值,返回Set结构本身。
- delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
- has( value):返回一个布尔值,表示参数是否为Set成员。
- clear( ):清除所有成员,没有返回值。
| 1 2 3 4 5 6 7 8 |
var s= new Set(); s.add(1).add(2).add(2); console.log("s.size:"+s.size); console.log(s.has(1));//true console.log(s.has(2));//true console.log(s.has(3));//false s.delete(2);//删除2的成员 console.log(s.has(2));//false |
| 1 2 3 |
var items = new Set([1,2,3,4,5]); var array = Array.from(items); console.log(array); |
| 1 2 3 4 |
function dedupe(array){ return Array.from(new Set(array)); } console.log(dedupe([1,2,3,3])); |
- keys( ):返回一个键名的遍历器
- values( ):返回一个键值的遍历器
- entries( ):返回一个键值对的遍历器
- forEach( ):使用回调函数遍历每个成员。
| 1 2 3 4 5 6 7 8 9 10 11 12 |
let set = new Set(['red','green','blue']); for ( let item of set.keys()){ console.log(item); } for(let item of set.values()){ for( let item of set.entries()){ |
| 1 2 |
Set.prototype[Symbol.iterator]===Set.prototype.values; //true |
| 1 2 3 4 5 |
let set=new Set(['red','green','blue']); for(let x of set) { console.log(x); } |
| 1 2 3 |
let set = new Set(['red','green','blue']); let arr = [...set]; console.log(arr); |
| 1 2 3 |
let arr=[3,5,2,2,5,5]; let unique=[...new Set(arr)]; console.log(unique); |
| 1 2 3 4 5 |
var ws = new WeakSet(); ws.add(1); //TypeError:Invalid value used in weak set ws.add(Symbol()); //TypeError:Invalid value used in weak set |
| 1 2 3 |
var a = [[1,2],[3,4]]; var ws = new WeakSet(a); console.log(ws); |
- WeakSet.prototype.add(value):向WeakSet实例添加一个新成员。
- WeakSet.prototype.delete(value):清除WeakSet实例的指定成员。
- WeakSet.prototype.has(value);返回一个布尔值,表示某个值是否在WeakSet实例中。
| 1 2 3 4 5 6 7 8 9 |
var ws = new WeakSet(); var obj = {}; var foo = {}; ws.add(window); ws.add(obj); console.log(ws.has(window));//true console.log(ws.has(foo));//false ws.delete(window); console.log(ws.has(window))//false |
es6的基本数据详解的更多相关文章
- JavaScript ES6 新特性详解
JavaScript ES6 带来了新的语法和新的强大功能,使您的代码更现代,更易读 const , let and var 的区别: const , let 是 ES6 中用于声明变量的新关键字. ...
- es6入门4--promise详解
可以说每个前端开发者都无法避免解决异步问题,尤其是当处理了某个异步调用A后,又要紧接着处理其它逻辑,而最直观的做法就是通过回调函数(当然事件派发也可以)处理,比如: 请求A(function (请求响 ...
- Es6 Promise 用法详解
Promise是什么?? 打印出来看看 console.dir(Promise) 这么一看就明白了,Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方 ...
- es6 Proxy对象详解
Proxy用于修改某些操作的默认行为,也可以理解为在目标对象之前架设一层拦截,外部所有的访问都必须先通过这层拦截,因此提供了一种机制,可以对外部的访问进行过滤和修改.这个词的原理为代理,在这里可以表示 ...
- es6 Reflect对象详解
Reflect是ES6为操作对象而提供的新API,而这个API设计的目的只要有: 将Object对象的一些属于语言内部的方法放到Reflect对象上,从Reflect上能拿到语言内部的方法.如:Obj ...
- es6实现继承详解
ES6中通过class关键字,定义类 class Parent { constructor(name,age){ this.name = name; this.age = age; } speakSo ...
- ES6 中 Promise 详解
Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise 是一个对象,从它可以获取异步操作的消息.Promise 提供统一的 API ...
- ES6中Promise详解
Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果.从语法上说,Promise 是一个对象,从它可以获取异步操作的消息. Promise 提供统一的 AP ...
- ES6 Promise用法详解
What is Promise? Promise是一个构造函数,接受一个参数(Function),并且该参数接受两个参数resolve和reject(分别表示异步操作执行成功后的回调函数.执行失败后的 ...
随机推荐
- AXI4 STREAM DATA FIFO
参考:http://www.xilinx.com/support/documentation/ip_documentation/axis_infrastructure_ip_suite/v1_1/pg ...
- linux的cron
linux系统由cron(crond)这个系统服务来控制的,linux系统上原来有非常多的计划性工作,因此,这个系统服务是默认启动的.cron进程每分钟会定期检查是否有要执行的任务,如果有就自动执行该 ...
- 高可用Redis(九):Redis Sentinel
1.主从复制高可用的问题 主从复制高可用的作用 1.为master提供备份,当master宕机时,slave有完整的备份数据 2.对master实现分流,实现读写分离 但是主从架构有一个问题 1.如果 ...
- Django 2.0 与 Django1.0在内部方法上的差异
models.Customer.tags.rel 方法 对于Django1 可以通过 models.Customer.tags.to.model.objects.all() 获取一个model下的Ma ...
- json格式的中文输出显示
print json.dumps(json.loads(result),ensure_ascii=False)
- Long Long Ago 二分查找
L: Long Long Ago 时间限制: 1 s 内存限制: 128 MB 提交 我的状态 题目描述 今天SHIELD捕获到一段从敌方基地发出的信息里面包含一串被经过某种算法加密过的的序 ...
- C++输出九九乘法表
#include "pch.h" #include <iostream> #include <iomanip> using namespace std; i ...
- Mac安装nginx配置过程
mac电脑系统重装了,记录一下安装nginx的过程: 1.打开终端 2.安装Command Line tools xcode-select --install 3.安装brew命令 ruby -e & ...
- UOJ#435. 【集训队作业2018】Simple Tree 树链剖分,分块
原文链接www.cnblogs.com/zhouzhendong/p/UOJ435.html 前言 分块题果然是我这种蒟蒻写不动的.由于种种原因,我写代码的时候打错了很多东西,最致命的是数组开小了.* ...
- Pycharm相对路径
问题: 今天有个程序,明显路径是存在的,但是os.path.exists的返回结果是False. 仔细想了想, 是相对路径的问题. 情况描述: 我的路径是: dir_path = 'data/mark ...