php 数据结构set,ES6的Set数据结构是什么
ES6:Set
了解Set
ES6提供了数据结构Set。类似于数组,但是没有重复值。Set本身是一个构造函数,用来生成Set数据结构const s = new Set();
[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for(let i of s ) { console.log(i); //2 3 4 5 }Set可以接受一个数组(或者类数组对象)作为参数,用来初始化var set = new Set([1, 2, 3, 4, 4]);
[...set]; // [1, 2, 3, 4]可用于数组去重[...new Set(array)]
Array.from()方法可以将Set结构转换为数组Array.from(new
Set(array))向Set加入值时,不会发生类型转换(类似于精确相等===),但是要注意在Set里NaN是等于自身的。另外两个对象总是不相等的。let set = new Set();let a = NaN;let b = NaN;
set.add(a);
set.add(b);
set; //{NaN} 只能加入一个,说明Set内部两个NaN是相等的
Set实例的属性和方法属性:Set.prototype.constructor:构造函数,默认就是Set函数
Set.prototype.size:返回实例的成员总数
操作方法(方法的具体实现见:我对JS集合的简单学习):add(value):添加一个值,返回Set结构本身
delete(value):删除某个值,返回布尔值
has(value):返回布尔值,表示是否是成员
clear():清除所有成员,无返回值s.add(1).add(2).add(2); //链式写法s.size(); //2s.has(3); //falses.delete(2);
s.has(2); //false遍历方法keys():返回键名的遍历器(什么是遍历器?Iterator)
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员这里要注意Set的键名和键值是同一个值,所以key()和values()行为是一致的。let set = new Set(['red', 'green', 'no']);for(let item of set.keys()) { console.log(item); //red green no}for(let item of set.values()) { console.log(item); //red green no}for(let item of set.entries()) { console.log(item); //['red': 'red'] ['green': 'green'] ['no': 'no']}//对每个成员执行某种操作,参数依次为键值、键名、集合本身new Set([1, 2, 3]).forEach((value, key) => console.log(value * 2)); //2 4 6
操作集合let a = new Set([1, 2, 3]);let b = new Set([4, 3, 2]);//并集let union = new Set([...a, ...b]); //{1, 2, 3, 4}//交集let intersect = new Set([...a].filter(x => b.has(x))); //{2, 3}//差集let difference = new Set([...a].filter(x => !b.has(x))); //{1}号外:扩展运算符(...)内部使用for...of循环,所以应该知道for of是干嘛的吧
数组的map()和filter()可用于Setlet set = new Set([1, 2, 3]);set = new Set([...set].map(x => x * 2)); //set: {2, 4, 6}let set = new Set([1, 2, 3, 4, 5]);set = new Set([...set].filter(x => (x % 2) == 0)); //set {2, 4}
php 数据结构set,ES6的Set数据结构是什么相关推荐
- python数据结构推荐书-自己想学数据结构,有大佬能推荐一下看什么书吗?
数据结构就是你的工具箱,这些工具箱帮你把同类的信息装到了一起,同时还提供给你操作这些信息的各种便捷方法. 数据结构是计算机中的重中之重,而且数据结构一般和算法结合比较紧密,加上,数据结构和算法往往是算 ...
- 二、考研数据结构笔记——绪论(理解数据结构,算法,时间复杂度计算做题技巧)
一.数据结构基本概念 1.数据:数据是信息的载体.客观事物的一种表现形式.万事万物都能用数据表示出来. 2.数据元素:数据元素是数据的基本单位,一个数据元素有若干个数据项组成 3.数据项:构成数据元素 ...
- 数据结构视频教程 -《[猎豹网校]数据结构与算法_C#语言》
整个视频打包下载地址:史上最全的数据结构视频教程系列分享之<[猎豹网校]数据结构与算法_C#语言>,转载请保留出处和链接! 更多优秀资源请访问:我是码农 在猎豹网校授课的基本都是在IT行业 ...
- 【自学笔记】尚硅谷数据结构与算法Chapter 1 数据结构与算法概述
Chapter 1 数据结构与算法概述 文章目录 Chapter 1 数据结构与算法概述 1.1.1 数据结构和算法的关系 1.2.1 线性结构 1.2.2 非线性结构 尚硅谷数据结构B站学习视频地址 ...
- 【数据结构与算法 - 数据结构基础】什么是数据结构?
[数据结构与算法 - 数据结构基础]什么是数据结构? 文章目录 [数据结构与算法 - 数据结构基础]什么是数据结构? 1 数据结构包含的三个方面 1.1 数据的逻辑结构 1.1.1 线性结构 数组[A ...
- 《大话数据结构》1、2数据结构、算法
大话数据结构 大话设计模式 head first设计模式 Java核心技术 卷1 深入理解Java虚拟机(JVM高级特性与最佳实践) 图解HTTP 大话数据结构 数据结构介绍, 算法推导大O阶的方法, ...
- 硬核资源!Redis 五种数据结构以及三种高级数据结构解析(详解)
上一篇分享的是<深入理解JVM>,这篇给大家分享<Redis 五种数据结构以及三种高级数据结构解析>. 前言 在 Redis 最重要最基础就属 它丰富的数据结构了,Redis ...
- linux数据结构和uthash,UThash 的数据结构
简介: 由于项目的需要,需要在一个嵌入式平台(用C语言)上用到hash map这个数据结构.于是搜索到开源的Uthash.Uthash 是一个C语言开发的hash map工具.其特点是用宏定义了所需要 ...
- java数据结构停车场管理问题_数据结构——停车场问题
实验三 停车场模拟管理程序的设计与实现 本实验的目的是进一步理解栈和队列的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力. 一.问题描述 设停车场只有一个可停放几辆汽车的狭长通道,且 ...
- ES6,新增数据结构Set的用法
ES6 提供了新的数据结构 Set. 特性 似于数组,但它的一大特性就是所有元素都是唯一的,没有重复. 我们可以利用这一唯一特性进行数组的去重工作. 单一数组的去重. let set6 = new S ...
最新文章
- 如何利用 C# 实现 K-D Tree 结构?
- 智能车竞赛视觉AI组总结 西南科技大学 – 西科二队
- NanoPi NEO Air使用十五:移植RTL8723BU驱动
- 【新星计划】MATLAB plot绘制图像
- python财务预算分析_财码Python管理会计小实验—营运管理之多维度盈利能力分析...
- AQS.accquire
- 剑指 Offer II 014. 字符串中的变位词
- 服务器标配 SSH 协议,你了解多少?
- 在线教育行业内容营销洞察白皮书(2021年版)
- WCF、WebAPI、WebService之间的区别
- Heron 数据模型,API和组件介绍
- 43个PSD to XHTML,CSS教程
- linux 分区 备份软件下载,硬盘分区备份(Image For Windows)
- MySQL中的datetime与timestamp比较
- linux更新硬件时钟,Linux内核“11分钟模式”可以做的最大的硬件时钟更新是什么?...
- Ubuntu 16.04下安装激活pycharm 2018.3版本
- ros系列—解决文件改名导致节点无法启动问题及ros::NodeHandle nh与nh(“~“)的理解
- 微信上卖菜的小程序怎么做?
- sqlplus登录缓慢的解决
- FreeMarker导出word遇到的坑
热门文章
- OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围...
- 【转】android题目
- 20200624每日一句
- 字符串分隔为二维数组,二级和三级指针的应用案例
- just show up失败让我们成长
- 181004有道扇贝每日一句
- C/C++ C# unity经常使用的一些快捷键
- Atitit 数据库核心技术index索引技术 btree hash lsm fulltxt目录1.1. HASH
- atitit 面试问题表 侧重于项目和业务描述方面.v2 良好的标准:: 1.回答问题比较流畅,较少出现停顿现象,较少犹豫 2.回答有条理清晰 不杂乱 3.回答较为丰富内容 4.精神状态紧张
- Atitit easyui翻页组件与vue的集成解决方案attilax总结