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(分别表示异步操作执行成功后的回调函数.执行失败后的 ...
随机推荐
- vue路由--网站导航功能
1.首先需要按照Vue router支持 npm install vue-router然后需要在项目中引入: import Vue from 'vue' import VueRouter from ' ...
- POI操作excle
将根目录下的poi-3.6-20091214.jar和Lib目录下三个通用包 commons-logging-1.1.jar junit-3.8.1.jar log4j-1.2.13.jar拷贝到项目 ...
- HeatMap
Reprinting From https://blog.csdn.net/JNingWei/article/details/78803669 ColorMap(色度图) 在图像处理中,伪色彩用途广泛 ...
- VS2012发布网站详细步骤问题
http://blog.csdn.net/mrobama/article/details/43118387
- java学习笔记--从c/c++到java转变
final修饰符1)final变量final表示“最后的,最终的”含义,变量一旦赋值后,不能被重新赋值.被final修饰的实例变量必须显示指定初始值.final修饰符通常和static修饰符一起来创建 ...
- string format的各类格式及用法
数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $12.36 货币 {0:c4} $12.3656 货币 "¥{0:N2}" ¥12.36 ...
- GrayLog + Logspout + Docker 实现分布式日志聚合
前提条件:你的服务器上已经安装了Docker和Docker Compose 一.安装GrayLog(Docker方式) version: '2' services: mongodb: image: m ...
- C++入门篇十一
单例对象:为了让类只有一个实例,实例不需要自己释放掉 不管创建多少个实例对象进行访问,访问的都是同一个值 #include "pch.h" #include <iostrea ...
- python基础--numpy.random
# *_*coding:utf-8 *_* # athor:auto import numpy.random #rand(d0, d1, ..., dn)n维随机值 data0 = numpy.ran ...
- git/gerrit的简介
gerrit和git 1.git Git是什么? Git是目前世界上最先进的分布式版本控制系统. SVN是集中式版本控制系统. Git与svn比较 相同:能记录文件的所有更改记录.这样是为了大量更 ...