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的元素,然后给这个按钮注册一个点击事件,我们可能会这样操作: ...
随机推荐
- 使用二分法查找mobile文件中区号归属地
#!/usr/bin/env python #coding:utf-8 ''' Created on 2015年12月8日 @author: DL @Description: 使用二分法查找mobil ...
- html5+css 图片自适应
<div style="position:absolute; width:100%; height:100%; z-index:-1; left:0; top:0;"> ...
- maven本地安装jar包同时生成pom文件
maven 本地安装jar包:mvn install:install-file -Dfile=本地路径/ojdbc12.jar -DgroupId=com.oracle -DartifactId=oj ...
- Replace Pioneer 注册
批量文本替换工具,Replace Pioneer 注册:http://www.mind-pioneer.com
- js中function参数默认值
--在dreamweaver做网站时,函数定义是在一个*.js文件中,其中定义了一个func,有四个参数,function func(string1,url,flag,icon),然后在另一个asp中 ...
- innodb buffer pool小解
INNODB维护了一个缓存数据和索引信息到内存的存储区叫做buffer pool,他会将最近访问的数据缓存到缓冲区.通过配置各个buffer pool的参数,我们可以显著提高MySQL的性能. INN ...
- jQuery控件有所感悟
两种写法对比: 第一种: ;(function($){ $.fn.myplugin = function(op,params){ if (typeof op == 'string'){ return ...
- jmeter执行顺序
- mysql高性能索引策略
转载说明:http://www.nyankosama.com/2014/12/19/high-performance-index/ 1. 引言 随着互联网时代地到来,各种各样的基于互联网的应用和服务进 ...
- information_schema.TABLES
获取所有表结构(TABLES) SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名'; TABLES表:提供了关于数据库中 ...