摘要:数组去重在前端工作中是必不可少的,接下来我就总结了个人常用的几种方式一环境书写传统方式效率不是是很高通过模拟的存储方式效率优于通过判断数组元素第一次出现的位置是否为当前位置来实现效率是的两倍,推荐从第二项开始遍历如果当前数组元素在数组中
数组去重在前端工作中是必不可少的,接下来我就总结了个人常用的几种方式
一. ES5环境书写 1. 传统方式:效率不是是很高var data = [1,3,2,1,2]; Array.prototype.unique = function(){ for(var i=0,arr=[],len=this.length;i2.通过模拟map的hash存储方式:效率优于1 var data = [1,3,2,1,2]; Array.prototype.unique = function(){ for(var i=0,r={},n=[],len=this.length;i3.通过indexOf判断数组元素第一次出现的位置是否为当前位置来实现:效率是2的两倍,推荐 var data = [1,3,2,1,2]; Array.prototype.unique = function(){二. ES6环境
var arr = [this[0]];
//从第二项开始遍历 for(var i=1,len=this.length;i//如果当前数组元素在数组中出现的第一次位置不是i,说明是重复元素 if(this.indexOf(this[i]) == i) arr.push(this[i]); } return arr; }; console.log(data.unique()); 通过Set数据结构中,无重复元素的特性来实现:比较推崇
var data = [1,3,2,1,2]; let arr = [...new Set(data)]; console.log(arr);
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/88683.html
摘要:引子数组去重是一个老生常谈的话题,在面试中也经常会被问道。其中如果数组是排序的,去重运算效率更高,因为排序能够将相同的数排列在一起,方便前后比较。当数组有序对于对象的去重,我们知道为,所以使用比较对象在实际场景中没有意义。 引子 数组去重是一个老生常谈的话题,在面试中也经常会被问道。对于去重,有两种主流思想: 先排序,线性遍历后去重,时间复杂度O(n*log2n); 使用哈希,空间换...
摘要:专题系列第三篇,讲解各种数组去重方法,并且跟着写一个前言数组去重方法老生常谈,既然是常谈,我也来谈谈。它类似于数组,但是成员的值都是唯一的,没有重复的值。 JavaScript 专题系列第三篇,讲解各种数组去重方法,并且跟着 underscore 写一个 unique API 前言 数组去重方法老生常谈,既然是常谈,我也来谈谈。 双层循环 也许我们首先想到的是使用 indexOf 来循...
摘要:数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些你能答出其中的种,面试官很有可能对你刮目相看。数组去重的方法一利用去重中最常用不考虑兼容性,这种去重的方法代码最少。 数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看...
摘要:工作过程中经常会用到数组去重,用到的时候往往一时想不到好方法,所以这里来总结一下去重方法。和方法分别为添加成员方法和得到键值方法。因此,利用方法也可以实现数组的去重。 工作过程中经常会用到数组去重,用到的时候往往一时想不到好方法,所以这里来总结一下去重方法。使用es6去重代码很简单,而且ES6已经相当普及了。所以先来介绍一下es6中的方法。 1.ES6中Map结构方法 function...
阅读 1859·2021-11-23 09:51
阅读 1231·2019-08-30 15:55
阅读 1595·2019-08-30 15:44
阅读 747·2019-08-30 14:11
阅读 1127·2019-08-30 14:10
阅读 890·2019-08-30 13:52
阅读 2616·2019-08-30 12:50
阅读 599·2019-08-29 15:04