ES6-set && 数组剔重
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.add(value); 添加某个值,返回Set结构本身
delete(value); 删除某个值,返回一个布尔值,表示删除是否成功
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 && 数组剔重的更多相关文章
- 【es6】数组排重
let set = new Set([1,2,3,4,4,4,4,4]); console.log( Array.from(set) ); //输出:[ 1, 2, 3, 4 ]
- ES6 之 数组的扩展
ES5 检测数组 let arr = [1,2,3,4] Array.isArray(arr) arr instanceof Array 转换方法 arr.toLocaleString() arr.t ...
- ES6定型数组
前面的话 定型数组是一种用于处理数值类型(正如其名,不是所有类型)数据的专用数组,最早是在WebGL中使用的,WebGL是OpenGL ES 2.0的移植版,在Web 页面中通过 <canvas ...
- 分别使用ES5和ES6进行数组去重以及注意事项
ES6,ES5数组去重 使用Es6进行数组去重 var arr = [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN]; ...
- ES6对数组的扩展(简要总结)
文章目录 数组的扩展(ES6) 1. 扩展运算符 2. Array.from 3. Array.of() 4. copyWithin() 5. find() 和 findIndex() 6. fill ...
- Javascript中数组查重的方法总结大全
数组查重:简单点说,就是找出数组中重复的元素然后去除,最后得到一个没有重复元素的数组. // 方法一思路: 1.构建一个新的数组,用于存放结果. 2.for循环中每次从数组取出一个 ...
- ES6扩展——数组扩展
1.结合扩展运算符使用.通过扩展运算符,在调用函数的时候,把一个数组展开,然后作为这个函数的参数 //结合扩展运算符使用 function foo(a,b,c){ console.log(a); // ...
- javascript数组查重方法总结
文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...
- ES6之数组扩展方法【一】(相当好用)
form 转化为真正的数组 先说一下使用场景,在Js中,我们要经常操作DOM,比如获取全部页面的input标签,并且找到类型为button的元素,然后给这个按钮注册一个点击事件,我们可能会这样操作: ...
随机推荐
- html5 placeholder ie 不兼容问题 解决方案
解决HTML5 placeholder的方案 来源: 时间:2013-09-05 20:06:49 阅读数:11375 分享到: 0 [导读] 使低版本浏览器支持Placeholder有很多方 ...
- Foundation框架—数据类(NSData)
一 NSData的使用 .string -> data NSString *str = @"changxiangweilai"; NSData *data = ...
- vim的树形菜单NERDTREE的设置
网上比较好的一篇文章:http://coolshell.cn/articles/1679.html http://coolshell.cn/articles/11312.html 1.Vim安装NER ...
- Aes 加解密算法
public class AesHelper { /// <summary> /// 生成128位的随机AES秘钥 /// </sum ...
- spark配置lzo
spark1.0版本 spark-env.sh中 export SPARK_LIBRARY_PATH=$SPARK_LIBRARY_PATH:/soft/hadoop/lzo/lib/export S ...
- VC++ CStatic控件背景透明且改变其文本时,文字重叠解决方法
最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了.解决该问题的方案是:从CStatic类派生自己的静态文本控件. 其实设置背景透明,也就是在C ...
- 2.struts2访问web资源(在struts2中获取session,request等等)
什么是web资源:web资源就是指request,response,session,servlet的api 为什么需要访问web资源:因为图片上传,需要获取图片的目录,就需要通过action来访问we ...
- docker 数据卷 权限
1,在运行容器的时候,给容器加特权: 示例:docker run -i -t --privileged=true -v /home/docs:/src waterchestnut/nodejs:0.1 ...
- ORACLE分区--表分区
.love_flying_snow Oracle表分区 Oracle . 废话少说,直接讲分区语法. Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库 ...
- 查linux端口连接情况用命令netstat
查linux端口连接情况用命令netstat netstat -apn |grep cdnbest 或netstat –apn | grep 3320