set 是es6新出的一种数据结构,里边放的是数组。 作用:去重(set里边的数组不能重复)
MDN:Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

总结:

1.成员唯一、无序且不重复;
2.[value, value],键值与键名是一致的(或者说只有键值,没有键名);
3.可以遍历,方法有:add、delete、has、clear、entries、forEach、keys、values
3.Set也能用来保存NaN和undefined, 如果有重复的NaN, Set会认为就一个NaN(实际上NaN!=NaN);
 
声明一个Set
let setArr = new Set(['ananiah','大诶啊','18']);
console.log(setArr) //Set(3) {"ananiah", "大诶啊", "18"}

增加

//增加
setArr.add('晴空万里');
console.log(setArr) //Set(4) {"ananiah", "大诶啊", "18", "晴空万里"}

查找

//查找
console.log(setArr.has('ananiah')) //true

删除

//删除某个
setArr.delete('18');
console.log(setArr) //Set(3) {"ananiah", "大诶啊", "晴空万里"}
//全部删除
setArr.clear();
console.log(setArr) //Set(0) {}

遍历

//for...of
for(let item of setArr){
console.log(item) //打印全部
}
//forEach
setArr.forEach(value => console.log(value));

查看长度

//size查看长度
console.log(setArr.size) //

数组去重

var array = [0,1,1,2,2,5,5,66,99,65,65];
console.log(Array.from(new Set(array))); //Array(7) [0, 1, 2, 5, 66, 99, 65]
console.log([...new Set(array)]); //Array(7) [0, 1, 2, 5, 66, 99, 65]

ES6-Set的增加、查找、删除、遍历、查看长度、数组去重的更多相关文章

  1. 6个Linux chkconfig命令实例 - 增加,删除,查看和修改services的自动启动选项

    注意:service的安装目录在/etc/rc.d/init.d下,/etc/init.d 是/etc/rc.d/init.d的链接. chkconfig命令用来安装,查看或修改 services随系 ...

  2. JAXP Dom 案例 对xml文件进行增加 查找 删除

    利用 JAXP 对 XML文件 的处理,把xml当做一个数据库来对待

  3. JavaWeb学习记录(九)——Cookie的增加、删除、查看

    一.servlet功能代码: public void doGet(HttpServletRequest request, HttpServletResponse response)           ...

  4. Java关于链表的增加、删除、获取长度、打印数值的实现

    package com.shb.java; public class Demo8 { public Node headNode = null; /** * @param args * @date 20 ...

  5. iOS --SQL的增加、删除、查找、修改

    iOS对于数据库的操作:增加.删除.查找.修改 首先需要创建一个数据库:本程序的数据库是在火狐浏览器里的插件里写的微量型数据库 火狐找查找SQLite Manager的步骤: 第一步:在工具栏找到附加 ...

  6. ES6-map数据结构,增加、删除、查找 方法(set get has delete clear ) 属性:size

    map数据结构: 本质上是键值对的集合,类似集合: 可以遍历,方法很多,可以跟各种数据格式转换. let json = { name:'ananiah', age:'18' } //效率低 需要遍历j ...

  7. 使用oracle数据库,多用户同时对一个表进行增加,删除,修改,查看等操作,会不会有影响?

    使用oracle数据库,多用户同时对一个表进行增加,删除,修改,查看等操作,会不会有影响? 1.问题:各操作间或者性能上会不会有影响? 如果有该如何解决? 多用户操作的影响主要是回锁定记录,oracl ...

  8. python3之对本地TXT文件进行增加,删除,修改,查看功能。

    由于是初学,代码如有不足,欢迎指出! 本博客记录我的编程之路,记录所学到的知识,分享所学心得! 这是我的一个作业. 首先分析要求: 创建一个TXT文件用于存储账号与密码 实现对文件进行增加,删除,修改 ...

  9. typedef的用法 单向链表的查找、增加、删除、销毁。

    一:typedef的用法.    写一个数据结构(计算机存储数据的一种方式,是抽象的,可以人为组织,提高算法效率),我们需要注意:接口友好,模块化,规范命名等方面,在接口友好方面,typedef是非常 ...

随机推荐

  1. JS---案例:设置div的宽度

    案例:设置div的宽度 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  2. MySQL MHA /usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln301] install_driver(mysql) failed: Attempt to reload DBD/mysql.pm aborted

    在公司随便找3台测试机搭个MHA,下面这个问题折腾了三天,之前没遇到过,查了OS版本发现一致,可能是不同人弄的OS吧,知道是cpan的问题就是搞不定,郁闷...[root@test247 ~]# ma ...

  3. Autofac 泛型依赖注入

    using Autofac;using Autofac.Extensions.DependencyInjection;using Hangfire;using Microsoft.AspNetCore ...

  4. jQuery基础之获取和设置标签元素属性

    jQuery基础之获取和设置标签元素属性方法,如下图: 代码实现: <script src="JS/jquery-1.12.4.min.js"></script& ...

  5. Prometheus学习系列(八)之Prometheus API说明

    前言 本文来自Prometheus官网手册 和 Prometheus简介 HTTP API 在Prometheus服务器上的/api/v1下可以访问当前稳定的HTTP API. 将在该端点下添加任何非 ...

  6. Flask 模板语言,装饰器

      Jinja2模板语言 # -*- coding: utf-8 -*-   from flask import Flask, render_template, request, redirect,  ...

  7. Delphi CreateProcess 创建一个新的进程和它的主线程

    Delphi CreateProcess WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件 CreateProcess百科名片 WIN32 ...

  8. Angular(06)- 为什么数据变化,绑定的视图就会自动更新了?

    这里提一点,前端三大框架(Angular,React,Vue)的数据驱动来更新视图的原理,即 MVVM 的实现. 为什么数据发生变化,绑定的视图就会刷新了呢? 以下是我的个人理解,仅供参考: 在还是 ...

  9. CSS雪碧图(精灵图)使用

    1:CSS雪碧图:CSS雪碧图 即 CSS Sprites,也有人叫它CSS精灵图. 2:雪碧图的由来:一个网站的页面需要大量的小图片或者小图标,但是大量的图片如果放在服务器上,每次当打开网站并且向服 ...

  10. SQL Server启动/关闭xp_cmdshell

    ==>启用xp_cmdshell USE master RECONFIGURE WITH OVERRIDE RECONFIGURE WITH OVERRIDE RECONFIGURE WITH ...