数组去重(初识ES6)】的更多相关文章

ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; let set = new Set(array); console.log(set); // => Set {1, 2, 3, 4, 5} ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node…
let arrayBefore = [1,3,3,2,1,5,2,1]; //去重之前的数组 Array.prototype.dedupe = function (){ //去重函数 返回去重后的数组 let temp = new Set(this); temp = Array.from(temp); //转为 Array类 return temp; }; arrayBefore.dedupe(); // [ 1, 3, 2, 5 ] 参考文献: 阮一峰ECMASript6入门. 电子工业出版社…
ES6,ES5数组去重 使用Es6进行数组去重 var arr = [false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN]; var set = new Set(arr); var uniqArr = Array.from(set) 因为NaN == NaN会返回,false,Es6不用区分这一点 使用Es5进行数组去重 Array.prototype.uniq = function() { var arr = []; v…
较常见的一问题:数组去重. 方法一:利用hash数组的原理 var arr=[1,3,3,4,5,5,6,6,7,8,69,8,99,9,0,]; function unique(arry){ var newArry=[]; for(let i=0;i<arr.length;i++){ if(!newArry[arr[i]]){ newArry[arr[i]]=arr[i]; } } return newArry; } console.log(unique(arr)); 方法二:indexOf方…
今天五一,在出去玩之前赶紧写篇博客,时刻不要忘记学习^_^!! 提到数组去重,想必大家都不陌生,会的同学可能噼里啪啦写出好几个,下面来看看之前常见的去重代码: 'use strict'; var arr = [1,'a',undefined,null,NaN,1,'a',undefined,null,NaN]; Array.prototype.remDub = Array.prototype.remDub || function(){ this.sort(); var arr = [this[0…
说明 JavaScript数组去重这个问题,经常出现在面试题中,以前也写过一篇数组去重的文章,(JavaScript 数组去重的多种方法原理详解)但感觉代码还是有点不够简单,今天和大家再说两种方法,代码可是足够的少了. 解释 方法一: function unique(arr) { const res = new Map(); return arr.filter((a) => !res.has(a) && res.set(a, 1)) } 就这么短,就可以了,我们来解释一下为什么. M…
ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; let set = new Set(array); console.log(set); // => Set {1, 2, 3, 4, 5} ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node…
一.Set 1.定义 Set对象是ES6中新定义的数据结构,类似于数组,它允许你存储任何类型的唯一值,不管是原始值还是对象引用. 2.语法 new Set([iterable]) iterable:可迭代对象,默认为空. Set方法 add:添加值,返回Set本身. delete:删除值,返回是否删除成功. has:判断是否拥有这个值,返回true/false. clear:清除所有值. 3.示例 let s = new Set(); s.add(4); s.add(1); s.add(3);…
ES6里新添加了两个很好用的东西,set和Array.from. set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目. 在这我们可以看见,重复的项目已经被去掉了,包括NaN.正常情况下,NaN === NaN 返回的是false,但是在set里,一样能够帮你去重,厉害了. 但是这里大家可以看到,set返回的是一个对象,但是我们想要的是数组啊. 这回,就该轮到Array.from出场了,它的作用,就是可以把类数组对象.可迭代对象转化为数组. 这回我们再看,已经变成…
并集: const arr1 = [1, 2, 3, 2, 5]; const arr2 = [1, 4, 6, 8, 3]; // 将两个数组合并 const concatArr = [...arr1, ...arr2]; // 对数组去重 const set = new Set(concatArr); const newArr = [...set] 交集: const arr1 = [1, 2, 3, 2, 5]; const arr2 = [1, 4, 6, 8, 3]; const se…