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. 微软第四题 给定cost能遍历的最大城市数

    有向图中N*N矩阵 cost:M, 最多可以遍历的结点个数 例如A可以有0->1->2->0->1 代价:2+2+3+2=9<10 输出4 #include <io ...

  2. 《Benign and maligenant breast tumors classification based on region growing and CNN segmentation》翻译阅读与理解

    注明:本人英语水平有限,翻译不当之处,请以英文原版为准,不喜勿喷,另,本文翻译只限于学术交流,不涉及任何版权问题,若有不当侵权或其他任何除学术交流之外的问题,请留言本人,本人立刻删除,谢谢!! 另:欢 ...

  3. OpenCV Template Matching Subpixel Accuracy

    OpenCV has function matchTemplate to easily do the template matching. But its accuracy can only reac ...

  4. android常用调试工具fiddle、wireshark和android studio的配置

    Fiddle配置android代理 在wifi的同一个局域网环境的windows主机中安装fiddler,并且启动,如本次192.168.3.14 在android手机端配置代理为该主机 还有一种方式 ...

  5. 在html中关于如果function的函数名和input的name一样会发生怎样的现象

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="2_PageMethods. ...

  6. Delphi2010 DataSnap入门

    DataSnap到了Delphi2010有了很大的变化,已经可以完全抛弃DCOM之类的东西了,在以前版本中建立一个DataSnap,需要使用DCOMConnection或者SockConnection ...

  7. DWT小波变换及其在时间序列数据预测中的应用

    Given data: 时间序列数据. Goal:做预测 方法:在滑动窗口中取DWT特征,并验证. 实验验证: Load forcast 数据集. 问题: 小波变换的物理意义是什么? 小波变换的数学意 ...

  8. 机器学习--Classifier comparison

    最近在学习机器学习,学习和积累和一些关于机器学习的算法,今天介绍一种机器学习里面各种分类算法的比较 #!/usr/bin/python # -*- coding: utf-8 -*- "&q ...

  9. navicat 连接oracle 出现ora06413 连接未打开

    问题原因:未选择OCI执行DLL,和windows 64位的(x86)无关 解决方法:navicat中 工具->选项->OCI中的OCI library选择路径(navimat安装路径)C ...

  10. 多线程爬取 threading.Thread 文件名支持gbk编码

    # - *- coding:utf-8-*-import urllib2import reimport osimport threadingimport sysreload(sys)sys.setde ...