ES6使用Set实现数组去重

ES6里新添加了两个很好用的东西,Set和Array.from。

Set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目。

常情况下,NaN === NaN 返回的是false,但是在set里,一样能够帮你去重。

但是我们发现得到的结果,是一个对象,并不是数组,如果我们需要得到数组该肿么办呢?可以使用Array.from(),它可以把类数组对象、可迭代对象转化为数组:

原文地址:https://www.cnblogs.com/wangqiao170/p/10405747.html

时间: 2024-11-13 00:49:35

ES6使用Set实现数组去重的相关文章

ES6 set方法对数组去重和排序

之前对数组做去重有很多方法,但大多比较麻烦,现在用ES6里面的set方法非常方便 直接上代码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <script> function 初级写法(){ let arr = [3,5,2,1,3,2,4]; le

ES6 Set求两个数组的并集、交集、差集;以及对数组去重

并集: 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

ES6数组去重

今天五一,在出去玩之前赶紧写篇博客,时刻不要忘记学习^_^!! 提到数组去重,想必大家都不陌生,会的同学可能噼里啪啦写出好几个,下面来看看之前常见的去重代码: '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

一行代码实现数组去重(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

数组去重--ES6方法

数组去重方法1:用es6的set和...扩展运算符 let arr = [1,2,3,4,4,5,2]; console.log([...new Set(arr)]) // [1, 2, 3, 4, 5] ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); for (l

ES6 set和map数据结构对对象数组去重简单实现

自从有了es6的set数据结构,数组的去重可以简单用一行代码实现,比如下面的方式 let arr = [1, 2, 2, 3, 4] function unique (arr) { return [...new Set(arr)] } console.log(unique(arr)) // [1, 2, 3, 4] 但是当数组的项不再是简单的数据类型时,比如是对象时,这种方法就会导致错误,比如下面的结果 let arr = [ { name: 'a', num: 1}, { name: 'b',

JS数组去重 ES6 方法

let arr = [0, 0, 0, 0, 1, 2, 3, 4, 4, 5, 2, 3, 3, 3, 9, 8, 9]; //数组去重法1 console.log(Array.from(new Set(arr))); //数组去重法2 console.log(...new Set(arr)); //数组去重法3 let newarr = []; for (var i = 0; i < arr.length; i++) { if (newarr.indexOf(arr[i]) == -1) {

使用es6新增Set函数快速数组去重

使用new Set()快速数组去重: let arr = [1, 2, 2, 3, 4, 5, 5, 5, 6] let set = new Set([...arr]) console.log([...set]) //[1, 2, 3, 4, 5, 6] function SetArr(array) { return Array.from(new Set(array)); } console.log(SetArr([1, 1, 2, 2, 3, 4, 4])) // [1, 2, 3,4] 原文

JavaScript 数组去重

JavaScript 数组去重 Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多.为什么是 underscore?最主要的原因是 underscore 简短精悍(约 1.5k 行),封装了 100 多个有用的方法,耦合度低,非常适合逐个方法阅读,适合楼主这样的 JavaScript