es6学习笔记 (数据结构set)

集合的概念:集合是由一组无序且唯一的项组成的。

特点 :  key 和 value 相同,没有重复的值

es6 提供了数据结构 set , 他类似于数组,但是成员的值都是唯一的,没有重复的值。

1、如何创建一个 set (Set 本身是一个构造函数,用来生成 Set 数据结构。)

var a = new Set([1,2,3]);
console.log(a);         // Set(3) {1, 2, 3}

用 Set 为数组去重

const set = new Set([1,2,3,4,2]);
console.log(set);       // Set(4) {1, 2, 3, 4}

2、Set 实例的属性和方法(size 、constructor)

var a = new Set([1,2,3]);
console.log(a.size);        // 3
console.log(a.constructor);     // function Set() { [native code] }

Set 实例的方法

Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)

1、add 方法 (添加某个值,返回Set结构本身)

var a = new Set([1,2,3]);
a.add("1").add(4);
console.log(a);        // Set(5) {1, 2, 3, "1", 4}

2、delete 方法(删除某个值,返回一个布尔值,表示删除是否成功)

var a = new Set([1,2,3]);
a.add("1").add(4);
console.log(a);        // Set(5) {1, 2, 3, "1", 4}
console.log(a.delete(1));       // true
console.log(a.delete(1));       // false

3、has 方法 (返回一个布尔值,表示该值是否为Set的成员)

var a = new Set([1,2,3]);
console.log(a.has(1));      // true

4、clear 方法(清除所有成员,没有返回值)

var a = new Set([1,2,3]);
a.clear();
console.log(a);         // Set(0) {}

5、keys 方法(返回键名的遍历器)

var a = new Set([1,2,3]);
console.log(a.keys());      // SetIterator {1, 2, 3}
var a = new Set([‘red‘, ‘green‘, ‘blue‘]);
for (let i of a.keys()){
    console.log(i);         // red , green , blue
}

6、values 方法(返回键值的遍历器)

var a = new Set([‘red‘, ‘green‘, ‘blue‘]);
for (let i of a.values()){
    console.log(i);         // red , green , blue
}
var a = new Set([‘red‘, ‘green‘, ‘blue‘]);
console.log(a.values());        // SetIterator {"red", "green", "blue"}

7、entries 方法 (返回键值对的遍历器)

var a = new Set([‘red‘, ‘green‘, ‘blue‘]);
console.log(a.entries());        // SetIterator {"red", "green", "blue"}
var a = new Set([‘red‘, ‘green‘, ‘blue‘]);
for(let item of a.entries()){
    console.log(item);          // (2) ["red", "red"] (2) ["green", "green"] (2) ["blue", "blue"]

}

8、forEach 方法

var a = new Set([‘red‘, ‘green‘, ‘blue‘]);
a.forEach(function (value, key, a) {
    console.log( value + "     miaov" );        // red     miaov
})                                              // green     miaov
                                                // blue     miaov
时间: 2024-08-08 05:52:40

es6学习笔记 (数据结构set)的相关文章

es6学习笔记初步总结

es6学习笔记初步总结 1. let.const 和 block 作用域 在ES6以前,var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: let 关键词声明的变量不具备变量提升(hoisting)特性 let 和 const 声明只在最靠近的一个块中(花括号内)有效 当使用常量 const 声明时,请使用大写变量,如:CAPITAL_CASING const 在声明时必须被赋值 否则报语法错误SyntaxError

[学习笔记]数据结构与算法

1.排序简单排序:?冒泡排序:将n个数从上往下排列,从第0个数开始依次对前n个.前n-1个.前n-2个数进行比较,保持小数在前大数在后,不符合就交换.在这个过程中,最后一个数始终是最大数.?选择排序:对所有n个.后n-1个.后n-2个依次比较,用一个变量存最小数,一趟比较完成之后,将最小数与所比较数据的第一个数进行交换.在这个过程中,第一个数始终是最小数.?插入排序:从第1个数开始向前扫描比较,小则插入.对于未排序数据,在已排序序列中向前扫描,并找到相应的位置插入.在这个过程中,整个序列局部有序

JAVA学习笔记 -- 数据结构

一.数据结构的接口 在Java中所有类的鼻祖是Object类,但是所有有关数据结构处理的鼻祖就是Collection和Iterator接口,也就是集合与遍历. 1.Collection接口 Collection c = new Xx(); // c可以称为Collection接口回调对象,虽然它被声明为Collection类型,但是实例化时实现的是接口的实现类Xx.它的方法也是用来操作实现类的对象. <span style="white-space:pre"> </s

es6学习笔记4--数组

数组的扩展 Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map). let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; // ES5的写法 var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c'] // ES6的写法 l

ES6学习笔记(一)

1.ES6学习之let.const (1).var.let.const 变(常)量声明 ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. 在ES6中let就诞生了,实际上它为javascript新增了块级作用域. let只在变量声明时 ,所在的代码块中有效. 由于这一特性,let很适合在for循环中使用. 如下图是一个demo: let声明变量的特点: a:不存在变量提升: console.log(m);//Uncaught ReferenceError: m is

ES6学习笔记(三)—— Set 和 Map

SetES6提供的数据结构,类似于数组,但是成员的值都是唯一的.(提供了一种数组去重的方法) Set 内部判断两个值是否相同使用的是 'Same-value equality',类似于 ===但是 NaN 等于自身 Set 实例的属性和方法 Set.prototype.constructor: 构造函数,默认就是 Set 函数 Set.prototype.size: 返回 Set 实例的成员总数 add(value): 添加值,返回 Set 结构本身 delete(value): 删除值,返回布

ES6学习笔记&lt;三&gt; 生成器函数与yield

为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口(Interface),yield则是生成器函数中表示 返回 或 继续 执行的关键字. 弄清楚这两个概念后,先看一个例子: function* fun(val) { yield 1*val; yield 2*val; yield 3*val; yield 4*val; return 5*val; }

ES6学习笔记(二)——字符串扩展

相信很多人也和我一样,不喜欢这样循规蹈矩的逐条去学习语法,很枯燥乏味.主要是这样学完一遍之后,没过一段时间就忘到九霄云外了.不如实际用到的时候研究它记得牢靠,所以我就整理成笔记,加深记忆的同时便于复习查看. 在这样不断的学习过程中,也提高了自己的总结能力:) 1.字符串的遍历器接口 ES5,数组和对象可以进行遍历,使用for() 和 for...in,还有jq中的each()方法进行遍历. ES6为我们提供了字符串遍历器  for...of 循环遍历 优点:可以识别大于0xFFFF的码点,传统的

我的es6学习笔记

前两个月看了一套es6的教程,现在将当时我做的笔记分享出来,与大家一起分享,我的不足之初也希望大家可以指出来.虽然简单学过一遍,但是我项目中用到的也就const,let,解构赋值,默认参数,箭头函数,promiss,模板字符串差不多这几个吧,其他的还不是很了解.现在再拿出来结合阮一峰老师的书再重新的学习一遍. ES6 npm install babel-cli -g npm install babel-cli babel-preset-es2015 --save-dev babel es6.js