es6--(三)set和map数据结构
1.Set和WeakSet
Set与数组相似,但是Set结构的成员必须是唯一的.
WeakSet与对象类型,但是WeakSet结构的成员只能是对象
Set结构的实例属性和方法
属性:
Set.prototype.constructor:构造函数
Set.prototype.size:返回Set实例的成员总数
方法:
--add(value):添加值,返回Set结构本身
--delete(value):删除某个值,返回一个布尔值
--has(value):返回一个布尔值,判断该值是否为Set的成员
--clear:清除所有成员,没有返回值
Set结构遍历方法:
--keys:返回键对的遍历器
--values:返回键值的遍历器
--entries:返回键值对的遍历器
--forEach:使用回调遍历每个成员
//声明一个Set类型(一)
var set = new Set([1,2,3,4,2,8,4]);
//声明一个Set类型(二)
var set = new Set();
for(let i =0;i<5;i++){
set.add(i);
}
for(let elem of set){
console.log(elem); // 1,2,3,4,8
}
扩展运算符 (...),转成数组
var set = new Set();
[1,2,4,8,3,4].map(function(elem){
set.add(elem);
});
console.log("set = "+set); //set = [object Set]
//扩展运算,将setL类型变成数组类型
var arr = [...set];
console.log("arr = " +arr);//arr = 1,2,4,8,3
删除和清空
var set = new Set();
[1,2,4,8,3,4].map(function(elem){
set.add(elem);
});
console.log("set = "+set); //set = [object Set]
set.delete(2); //删除2 arr = 1,4,8,3
set.clear(); //清空 arr=
//扩展运算,将setL类型变成数组类型
var arr = [...set];
console.log("arr = " +arr);//arr = 1,2,4,8,3
遍历键值
var set = new Set();
[1,2,4,8,3,4].map(function(elem){
set.add(elem);
});
//键和值是相同的
set.forEach(function(value,key){
console.log(key + " = " + value);//1=1,2=2,3=3,4=4,8=8
});
WeakSet方法:
--add(value):添加 一个成员
--delete(value):清楚指定成员
--has(value):返回一个boolean,判断某个值是否存在
WeakSet的对象都是弱应用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说如果其他的对象都不再引用该对象,该对象就会被回收机制收回。因此,WeakSet是不可遍历的,因为成员很可能在遍历之后被回收了,消失了,成员就取不到了。
2.Map和WeakMap
es6--(三)set和map数据结构的更多相关文章
- es6的Set和Map数据结构
Set 和 Map 数据结构 Set WeakSet Map WeakMap Set § ⇧ 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set ...
- ES6系列_12之map数据结构
1.map数据结构出现的原因? JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制.为了能实现将对象作为键 ...
- ES6笔记03-Set和Map数据结构
ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值.Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, 3, 5, 4, ...
- ES6 学习 -- Set和Map数据结构
一.Set对象数据结构 1.Set数据结构类似数组,但是其每个成员都是唯一值,没有重复,且Set本身是一个构造函数,用来生成Set数据结构,用法如下: const setData = new Set( ...
- es6(三set和map数据结构)
es6中提供了一个新的数据结构Set,他有点类似数组,但和数组不同的是,在里面你如果写入重复的值的话,他不会显示重复值. const s =new Set(); [2,3,4,5,6,6,6,7,8, ...
- 前端笔记之React(六)ES6的Set和Map&immutable和Ramda和lodash&redux-thunk
一.ES6的Set.Map数据结构 Map.Set都是ES6新的数据结构,都是新的内置构造函数,也就是说typeof的结果,多了两个: Set 是不能重复的数组 Map 是可以任何东西当做键的对象 E ...
- ES6 之 Set数据结构和Map数据结构 Iterator和for...of循环
ECMAScript 6 入门 Set数据结构 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. va ...
- es6学习笔记-set和map数据结构
ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3 ...
- js ES6 Set和Map数据结构详解
这篇文章主要介绍了ES6学习笔记之Set和Map数据结构,结合实例形式详细分析了ECMAScript中基本数据结构Set和Map的常用属性与方法的功能.用法及相关注意事项,需要的朋友可以参考下 本 ...
- ES6的新特性(12)——Set 和 Map 数据结构
Set 和 Map 数据结构 Set 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. co ...
随机推荐
- linux memcached 安装
下载并安装Memcache服务器端服务器端主要是安装memcache服务器端.下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz ...
- IOS开发笔记 - 基于SDWebImage的网络图片加载处理
前言: 在IOS下通过URL读一张网络图片并不像Asp.net那样可以直接把图片路径放到图片路径的位置就ok, 而是需要我们通过一段类似流的方式去加载网络图片,接着才能把图片放入图片路径显示. 这里找 ...
- JavaScript中的call 和apply的用途以及区别
apply 接受两个参数,第一个参数指定了函数体内this 对象的指向,第二个参数为一个带下标的集合,这个集合可以为数组,也可以为类数组,apply 方法把这个集合中的元素作为参数传递给被调用的函数: ...
- Hybrid App(一)App开发选型
1.几种app开发模式概述 Native App 即传统的原生APP开发模式,Android基于Java语言,底层调用Google的 API;iOS基于OC或者Swift语言,底层调用App官方提供的 ...
- KendoUI 用下来的小总结
Kendoui Aspnetmvc * 引用jquery.1.10以上 * 1.项目引用 Kendo.Mvc.dll 2.页面引用 @using Kendo.Mvc.UI; 3.Name和 HtmlA ...
- 年末整理git和svn的使用心得
实习加毕业工作也一年多了,用过svn 也用过git,现在也是两种版本管理工具交替不同的项目再用. 趁年末放假之际,来梳理下. 对于SVN常用命令: .svn cp svn-trunk地址 svn-br ...
- react入门——慕课网笔记
一. jsx 1. 被称为语法糖:糖衣语法,计算机语言中添加的某种语法,对语言的功能没有影响,更方便程序员使用,增加程序的可读性,降低出错的可能性 类似的还有(coffeescript,typescr ...
- Android第二天
1.从看得见的活动入手 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...
- [UWP小白日记-8]一些零碎的东西
设置启动窗口大小 直接上代码了没什么好解释的了,既然能设置最小,那铁定就能设置最大 public MainPage() { //设定窗口启动显示大小 ApplicationView.Preferred ...
- qdoc 写法
Qdoc 注释 Qdoc注释有一些命令, 能够对文档进行组织. QDoc能识别以下3种类型的命令 主题(topic command) 主题命令确定了文档的元素,例如C++类(class),函数(fun ...