// 方法一:// 双层循环,外层循环元素,内层循环时比较值// 如果有相同的值则跳过,不相同则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实现数组去重方法六种方法相关推荐

  1. Javascript中数组去重的六种方法

    数组去重 第一种方法: 先对数组进行排序sort(),排好序,然后把数组的当前项和后一项进行比较,相同则使用数组的splice(相同的位置,1),但是为了防止数组塌陷,每次删除数组元素的时候要把i的值 ...

  2. JS对象数组去重简单有效方法

    I.输入 JS对象数组去重是业务经常遇到的方法,稍微简洁一点的方法,如下: var data = [{"id": 1, "name": "李四1&qu ...

  3. Js中数组添加元素的六种方法

    图1输出log种的stars 和 newLength 没有引号,不然就是输出字符串了

  4. 前端:JS实现数组去重常用的六种方法介绍

    今天给大家分享JS实现数组去重常用的六种方法,希望对大家能有所帮助! 定义变量 let arr = [20,6,13,20,100,8,13,11]; let newArr = []; 1.两层循环去 ...

  5. Js面试题(一)--js实现数组去重怎么实现?

    方法1.创建一个新的临时数组来保存数组中已有的元素 方法2.使用哈希表存储已有元素 方法3.使用indexof判断数组元素第一次出现的位置是否为当前位置 方法4.先排序再去重 第一种方法和第三种方法都 ...

  6. Js中数组去重的几种方法

    前几天在看前端面试题的时候,其中js部分有个问题是实现数组去重的算法,一开始就想了一两种方法,后来仔细回忆了下这个题,觉得该问题实现方法确实不止局限于一两种方法 ,从不同的角度去看待该问题就会有多种实 ...

  7. js 简单的数组去重13种方法

    js 数组去重 十几种数组去重的方法,有的去重构思可以大致相同. 上篇的几种数组去重 https://blog.csdn.net/weixin_47988564/article/details/106 ...

  8. JS实现数组去重的八种方法(实用)

    前言 js数组去重是比较常见的数组操作方式之一,网上有很多关于数组去重的博客文章,方法各式各样,但有些方法实用性很差,很容易造成不必要的麻烦,所以我们需要去其糟粕取其精华,下面我们就整理一些比较实用的 ...

  9. html怎么创建数组,js创建数组的三种方法 JS数组去重的几种常见方法

    JS数组有哪几种定义方式? js 里创建一个数组 那几种方式有什么区别吗?a = new Array(); b = []; 性能问题吗?? function clear(arr) { // 1 如何获 ...

  10. js中数组去重的方法

    1.将数组的每一个元素依次与其他元素做比较,发现重复元素,删除 var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5];console.log(arr); // ...

最新文章

  1. oracle创建directirtory,oracle11g使用Direct NFS创建表空间
  2. 类的成员和嵌套(建模)
  3. 如何查看某个employee被assign到了哪个sales organization上
  4. 敏捷开发一千零一问系列之十二:敏捷实施的步骤?
  5. UIBezierPath IOS贝塞尔曲线
  6. 水培设备行业调研报告 - 市场现状分析与发展前景预测
  7. numpy ndarray可用的常规函数
  8. 导出excel 文件
  9. oracle数据库中sql语句性能提升之to_char改造
  10. JavaScript与页面交互
  11. oracle 错误01017,ORA-01017:用户名密码出错 故障实例
  12. Unity3D for iOS初级教程:Part 3/3
  13. python小说爬虫练习
  14. C语言进阶(一):宏函数内定义结构体
  15. 纳韦斯托克斯方程的推导_纳维-斯托克斯方程的来源
  16. 修改dns服务器有什么用,修改dns的好处是什么?
  17. Could not create connection to database server. Attempted reconnect 3 times. Giving up.
  18. solidworks启动慢的原因在这里
  19. Python中使用print函数的三种输出方式
  20. c语言加法器程序代码,利用EDA设计加法器和减法器并且附有程序代码的实验报告...

热门文章

  1. rviz 选取点云数据
  2. 《分布式微服务电商》--项目简介
  3. (附源码) spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  4. SQLsever数据库实验(一)
  5. 日照申请著作权有以下几点好处
  6. 什么是软文推广,软文的形式有哪些
  7. 如何查看Gradle插件的源码
  8. Baidu Apollo代码解析之Open Space Planner中的Hybrid A*
  9. 短视频+在线教育有什么优势呢?
  10. 英语语法学习 7 -- 数词