set

Set:ES6中提供的新的数据结构set。特点:1.类似数组,属性值时唯一的!!2.Set本身是一个构造函数,用来生成数据结构,表现形式{1,"3",78},是个数据集合

  var s = new Set();
s.add().add().add().add().add(NaN).add(NaN).add({}).add({});
console.log(s);//Set {1, 2, 3, NaN, Object {}, Object {}}

【注意】:

  • 1.set里的成员是唯一的:所有只有一个3

  • 2.NaN在此是个特殊,也只能打印出一个NaN

  • 3.此处的对象是对应两个引用,所以是两个object

Set的属性和方法

属性:
  • 1.Set.prototype.constructor:构造函数,默认就是Set函数。

  • 2.Set.prototype.size:返回Set实例的成员总数。

方法:
  1. 1.add(value); 添加某个值,返回Set结构本身

  2. delete(value); 删除某个值,返回一个布尔值,表示删除是否成功

  3. has(value); 返回一个布尔值,表示该值是否为Set的成员4. clear(); 清除所有成员,没有返回值

试问:我们现在如何拿到其中一个任意值?

四种遍历的方法,用于遍历成员,配合for of使用

1.keys(); 返回一个键名的遍历器

2.values(); 返回一个键值的遍历器(这里的键值都是一个东西)

3.entries():返回一个键值对的遍历器

4.for in:使用回调函数遍历每个成员​ for in:使用回调函数遍历每个成员

 var md = new Set([1,43,56,"lalala"]);
for(let item of md){
console.log(item);
}
// 1
// 43
// 56
// lalala

  

 

// keys(); 返回一个键名的遍历器

  let set = new Set(['red', 'green', 'blue']);
for (let item of set.keys()) {
console.log(item);
}
// red
// green
// blue

  

// values(); 返回一个键值的遍历器(这里的键值都是一个东西)

for(let item of set.values()){
console.log(item);
}
// red
// green
// blue

  

// entries():返回一个键值对的遍历器

for(let item of set.entries()){
console.log(item);
}
// ["red", "red"]s
// ["green", "green"]
// ["blue", "blue"]

  

【数组剔重】(几种方法)

// 源生的方法一:

 var arr=[3,5,7,8,10,4,2,3,3,3,4,2];
var nArr = [];
for(let i = 0; i < arr.length; i++){
if(nArr.indexOf(arr[i]) === -1){
nArr.push(arr[i]);
}
}
console.log(nArr);//[3, 5, 7, 8, 10, 4, 2]

  

//源生的方法二

 var arr=[3,5,7,8,10,4,2,3,3,3,4,2];
for(var i = 0; i < arr.length; i++){
for(var j = i+1; j <arr.length; j++){
if(arr[i]==arr[j]){
arr.splice(j,1);
j--;
}
}
}
console.log(arr);

  

//方法三:利用set里的值唯一的属性​

  var arr99 = new Set(arr);
console.log(arr99);//Set {3, 5, 7, 8, 10…}
//再来解构一下,变成[]
var arr88 = [...arr99];
console.log(arr88);//[3, 5, 7, 8, 10, 4, 2]

  

ES6-set && 数组剔重的更多相关文章

  1. 【es6】数组排重

    let set = new Set([1,2,3,4,4,4,4,4]); console.log( Array.from(set) ); //输出:[ 1, 2, 3, 4 ]

  2. ES6 之 数组的扩展

    ES5 检测数组 let arr = [1,2,3,4] Array.isArray(arr) arr instanceof Array 转换方法 arr.toLocaleString() arr.t ...

  3. ES6定型数组

    前面的话 定型数组是一种用于处理数值类型(正如其名,不是所有类型)数据的专用数组,最早是在WebGL中使用的,WebGL是OpenGL ES 2.0的移植版,在Web 页面中通过 <canvas ...

  4. 分别使用ES5和ES6进行数组去重以及注意事项

    ES6,ES5数组去重 使用Es6进行数组去重 var arr = [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN]; ...

  5. ES6对数组的扩展(简要总结)

    文章目录 数组的扩展(ES6) 1. 扩展运算符 2. Array.from 3. Array.of() 4. copyWithin() 5. find() 和 findIndex() 6. fill ...

  6. Javascript中数组查重的方法总结大全

    数组查重:简单点说,就是找出数组中重复的元素然后去除,最后得到一个没有重复元素的数组. // 方法一思路:     1.构建一个新的数组,用于存放结果.       2.for循环中每次从数组取出一个 ...

  7. ES6扩展——数组扩展

    1.结合扩展运算符使用.通过扩展运算符,在调用函数的时候,把一个数组展开,然后作为这个函数的参数 //结合扩展运算符使用 function foo(a,b,c){ console.log(a); // ...

  8. javascript数组查重方法总结

    文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...

  9. ES6之数组扩展方法【一】(相当好用)

    form 转化为真正的数组 先说一下使用场景,在Js中,我们要经常操作DOM,比如获取全部页面的input标签,并且找到类型为button的元素,然后给这个按钮注册一个点击事件,我们可能会这样操作: ...

随机推荐

  1. 查看python api

    以下方法可以查看python 的api,包括selenium webdriver,requests等 1.cmd进入dos命令行窗口,输入python -m pydoc -p 2345   (2345 ...

  2. [Tomcat 源码分析系列] (二) : Tomcat 启动脚本-catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...

  3. XproerUI控件工厂代码优化-使用C++11特性优化

    优化前的代码,比较冗余,通常实现一个工厂类的创建器需要三个步骤. 代码截图: 优化后的代码,更简洁,对开发人员更加友好,实现一个工厂类创建器只需要一个步骤. 代码截图:

  4. mongo管理工具

    启动 D:\Program Files\MongoDB\Server\3.4\bin\mongod.exe --dbpath d:\data\db 还原 D:\Program Files\MongoD ...

  5. pdo 事物的处理

  6. 抢凳子日数据sql

    --先找到档期select * from hv_item_info a where a.report_begdate > '2016-07-28' and a.report_begdate &l ...

  7. Basic Calculator

    本博客介绍leetcode上的一道不难,但是比较经典的算法题. 题目如下: Implement a basic calculator to evaluate a simple expression s ...

  8. Varnish简介

    Varnish介绍: Varnish是一个反向HTTP代理,有时也被称为HTTP的加速器或网络加速器:它存在于真实服务器的前面(可能有多级代理),将来自于客户端的请求中的部分内容存储在自身的内存中,以 ...

  9. java查看当前项目所有线程列表界面

    java查看当前项目所有线程列表界面 1.TestThread(测试类) package com.isoftstone.pcis.isc.job.king.panel; public class Te ...

  10. IE6/IE7/IE8兼容H5标签

    可以使用html5shiv(html5shiv主要解决HTML5提出的新元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式)来解决 <!--[if lt IE 9 ...