JS实现数组去重方法六种方法
// 方法一:// 双层循环,外层循环元素,内层循环时比较值// 如果有相同的值则跳过,不相同则push进数组Array.prototype.distinct = function(){var arr = this,result = [],i,j,len = arr.length;for(i=0;i<len;i++){for(j=i+1;j<len;j++){if(arr[j]==arr[i]){j= ++i}}result.push(arr[i])}return result}var arra = [1,2,3,4,4,1,1,2,1,1,1];console.log(arra)console.log(arra.distinct())
// 方法二:利用splice直接在原数组进行操作// 双层循环,外层循环元素,内层循环时比较值// 值相同时,则删去这个值// 注意点:删除元素之后,需要将数组的长度也减1.// 优点:简单易懂// 缺点:占用内存高,速度慢Array.prototype.distinct = function(){var arr = this,i,j,len = arr.length;for(i=0;i<len;i++){for(j=i+1;j<len;j++){if(arr[i]==arr[j]){arr.splice(j,1)len--;j--;}}}return arr;}var a = [1,2,3,4,5,6,5,3,2,4,56,4,1,2,1,1,1,1,1,1];var b = a.distinct()
// 方法三:利用对象的属性不能相同的特点进行去重Array.prototype.distinct = function(){var arr = this,i,j,obj={},len = arr.length,result=[];for(i=0;i<len;i++){if(!obj[arr[i]]){obj[arr[i]] = 1result.push(arr[i])}}return result;}var a = [1,2,3,4,5,6,5,3,2,4,56,4,1,2,1,1,1,1,1,1,];var b = a.distinct()
// 方法四:数组递归去重// 运用递归的思想// 先排序,然后从最后开始比较,遇到相同,则删除Array.prototype.distinct = function(){var arr = this ,len = arr.length;arr.sort(function(a,b){ //对数组进行排序才能方便比较return a-b;})function loop(index){if(index >=1){if(arr[index] ===arr[index-1]){arr.splice(index,1)}loop(index-1) //递归loop函数进行去重}}loop(len-1)return arr;}
// 方法五:利用indexOf以及forEachArray.prototype.distinct = function(){var arr = this,result = [];arr.forEach((v,i,arr) => {var bool = arr.indexOf(v,i+1)if(bool === -1){result.push(v)}});return result; }var a = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,2,3,3,2,2,1,23,1,23,2,3,2,3,2,3];var b = a.distinct()console.log(b)
// 方法六:利用ES6的setfunction depute(array){return Array.from(new Set(array))}console.log(depute([1,1,2,33,3,3]))
JS实现数组去重方法六种方法相关推荐
- Javascript中数组去重的六种方法
数组去重 第一种方法: 先对数组进行排序sort(),排好序,然后把数组的当前项和后一项进行比较,相同则使用数组的splice(相同的位置,1),但是为了防止数组塌陷,每次删除数组元素的时候要把i的值 ...
- JS对象数组去重简单有效方法
I.输入 JS对象数组去重是业务经常遇到的方法,稍微简洁一点的方法,如下: var data = [{"id": 1, "name": "李四1&qu ...
- Js中数组添加元素的六种方法
图1输出log种的stars 和 newLength 没有引号,不然就是输出字符串了
- 前端:JS实现数组去重常用的六种方法介绍
今天给大家分享JS实现数组去重常用的六种方法,希望对大家能有所帮助! 定义变量 let arr = [20,6,13,20,100,8,13,11]; let newArr = []; 1.两层循环去 ...
- Js面试题(一)--js实现数组去重怎么实现?
方法1.创建一个新的临时数组来保存数组中已有的元素 方法2.使用哈希表存储已有元素 方法3.使用indexof判断数组元素第一次出现的位置是否为当前位置 方法4.先排序再去重 第一种方法和第三种方法都 ...
- Js中数组去重的几种方法
前几天在看前端面试题的时候,其中js部分有个问题是实现数组去重的算法,一开始就想了一两种方法,后来仔细回忆了下这个题,觉得该问题实现方法确实不止局限于一两种方法 ,从不同的角度去看待该问题就会有多种实 ...
- js 简单的数组去重13种方法
js 数组去重 十几种数组去重的方法,有的去重构思可以大致相同. 上篇的几种数组去重 https://blog.csdn.net/weixin_47988564/article/details/106 ...
- JS实现数组去重的八种方法(实用)
前言 js数组去重是比较常见的数组操作方式之一,网上有很多关于数组去重的博客文章,方法各式各样,但有些方法实用性很差,很容易造成不必要的麻烦,所以我们需要去其糟粕取其精华,下面我们就整理一些比较实用的 ...
- html怎么创建数组,js创建数组的三种方法 JS数组去重的几种常见方法
JS数组有哪几种定义方式? js 里创建一个数组 那几种方式有什么区别吗?a = new Array(); b = []; 性能问题吗?? function clear(arr) { // 1 如何获 ...
- js中数组去重的方法
1.将数组的每一个元素依次与其他元素做比较,发现重复元素,删除 var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5];console.log(arr); // ...
最新文章
- oracle创建directirtory,oracle11g使用Direct NFS创建表空间
- 类的成员和嵌套(建模)
- 如何查看某个employee被assign到了哪个sales organization上
- 敏捷开发一千零一问系列之十二:敏捷实施的步骤?
- UIBezierPath IOS贝塞尔曲线
- 水培设备行业调研报告 - 市场现状分析与发展前景预测
- numpy ndarray可用的常规函数
- 导出excel 文件
- oracle数据库中sql语句性能提升之to_char改造
- JavaScript与页面交互
- oracle 错误01017,ORA-01017:用户名密码出错 故障实例
- Unity3D for iOS初级教程:Part 3/3
- python小说爬虫练习
- C语言进阶(一):宏函数内定义结构体
- 纳韦斯托克斯方程的推导_纳维-斯托克斯方程的来源
- 修改dns服务器有什么用,修改dns的好处是什么?
- Could not create connection to database server. Attempted reconnect 3 times. Giving up.
- solidworks启动慢的原因在这里
- Python中使用print函数的三种输出方式
- c语言加法器程序代码,利用EDA设计加法器和减法器并且附有程序代码的实验报告...