JavaScript数组去重

JavaScript去重的七种方法 简单易懂
方法一:暴力去重法

// 暴力去重法
function ArrayIsUnique (array) {if (!Array.isArray(array)) return;for (let i = 0; i < array.length; i++) {for (let j = i + 1; j < array.length; j++) {if (array[i] === array[j]) {array.splice(j, 1)j--}}}return array
}

方法二:Set方法

// Set方法去重
function ArrayIsUnique2 (array) {if (!Array.isArray(array)) return;const map = new Set(array)return Array.from(map)
}

方法三:Map方法

// Map方法去重
function ArrayIsUnique3 (array) {if (!Array.isArray(array)) return;const map = new Map()array.forEach(item => map.set(item, item))return Array.from(map.values())
}

方法四:先排序再去重

// 先排序再去重
function ArrayIsUnique4 (array) {if (!Array.isArray(array)) return;array.sort()for (let i = 0; i < array.length; i++) {if (array[i] === array[i + 1]) {array.splice(i, 1)}}return array
}

方法五:indexof方法去重

// 定义一个新数组 如果没有就存进去
function ArrayIsUnique5 (array) {if (!Array.isArray(array)) return;const arr = []array.forEach(item => {if (arr.indexOf(item) === -1) {arr.push(item)}})return arr
}

方法六:使用includes方法

function ArrayIsUnique6 (array) {if (!Array.isArray(array)) return;const arr = []array.forEach(item => {if (!arr.includes(item)) {arr.push(item)}})return arr
}

方法七:filter方法

function ArrayIsUnique7 (array) {if (!Array.isArray(array)) return;let arr = array.map(item => item)array.forEach(item => {arr = arr.filter(i => item !== i)arr.push(item)})return arr
}

如有错误 可指出修改 谢谢

JavaScript 数组去重方法合集(简洁易懂)相关推荐

  1. javascript数组去重方法汇总

    前言 数组去重已经是一个老生常谈的问题了,依然经久不息,经过岁月的变迁es标准的升级迭代,似乎有越来越多的方法和方式供我们使用,那么那种方式才是最优的?那种才是最简洁的?这个我们一起来探讨. 省略:传 ...

  2. 珍宝鸭的力扣练习(10):数组特殊方法合集

    题目合集: 方法1:二分法 例题1:不在排序数组内的数字 例题2:target开始与结束位置 例题3:旋转数组的最小值 例题4:排序数组中target的个数 方法2:摩尔投票法 例题1:不在数组内的数 ...

  3. js数组去重,合集等操作

    <html> <head><script type="text/javascript"> var a=['a','b','c']; var b= ...

  4. javascript数组去重方法性能测试比较

    昨天参加的一个前端面试,其中有一题数组去重,首先想到的是对象存键值的方法,代码如下 方法一:(简单存键值) Array.prototype.distinct1 = function() {var i= ...

  5. Javascript数组去重方法

    目录 什么是数组去重? 1.利用sort排序去重 2.利用indexOf去重 3.new Set 什么是数组去重? 把重复多余的元素剔除掉,我们常利用以下方法去重,方法很多,随便列举两种 1.利用so ...

  6. JavaScript数组去重方法整理

    常见的包括三类:暴力式嵌套遍历,先排序后遍历,词典式一次遍历. 这里只贴代码吧.可直接放在浏览器的控制台运行.详细的介绍文章(含参考文章的链接)在  http://borninsummer.com/b ...

  7. 【循环数组】js循环数组的方法合集

    一.forEach循环 注:没有 return 返回值,且不能用break跳出循环. let arrlist = ['123','456','789'];arrlist.forEach(functio ...

  8. 六种方法实现JavaScript数组去重

    tip:有问题或者需要大厂内推的+我脉脉哦:丛培森 ٩( 'ω' )و [本文源址:http://blog.csdn.net/q1056843325/article/details/73277063 ...

  9. javascript数组去重的10种方法

    亲爱的小伙伴,对于数组javascript中的数组去重方法你知道多少种呢?学会如何对数组进行去重对于javascript的学习来说也是十分重要的,下边就让我来分享一下我所知道的集中数组去重的方法吧! ...

最新文章

  1. 控制Open With菜单项的注册表键值
  2. Python关于装饰器的练习题
  3. ED2k Resource
  4. 一道关于比赛胜负的Sql查询题目
  5. node.js模块引擎
  6. 毕设题目:Matlab三维装箱
  7. 算法动画图解(安卓)、排序算法的可视化
  8. 金蝶软件和用友软件部署在阿里云ECS具体方法及教程
  9. SovitChart工具1分钟快速开发前端统计图表
  10. 红包算法-二倍均值法
  11. 【存储】SDS软件定义存储,看这一篇就够了
  12. unity 报错 Some objects were not cleaned up when closing the scene. 原因与方案
  13. 【BZOJ5285】【HNOI2018】寻宝游戏
  14. 电脑磁盘(特别是C盘)又满了,不知道删除什么?试试这款磁盘分析工具
  15. 【​观察】做好数据到介质的连接者 新数据时代浪潮存储的行与思
  16. mate7安装android o,华为Mate7怎么刷机 华为Mate7刷机教程【步骤详解】
  17. AUTOCAD——弧长标注命令、半径标注命令
  18. 爱博精电亮相四川省节能环保品牌推广全川行——乐山站
  19. C语言 强符号与弱符号
  20. 跳槽前如何精准评估自己的身价?

热门文章

  1. 原生js字符串拼接问题(拼接字符串和变量,input框的value绑定变量)
  2. 计算机美术基础学情分析,绘画教学计划(通用3篇)
  3. block中断 virtio_virtio-blk浅析[转]
  4. python多态_Python 多态与抽象类
  5. MATLAB基础学习(一)基本数学计算
  6. c++语言取整为什么要加0.5_c++ 取整:四舍五入 向上取整 向下取整
  7. 兄台们冷静一些,不要有事没事就民族性,劣根性!
  8. Wireshark网络抓包实验
  9. Android源码解析之Bitmap占用内存正确的计算公式 你知道吗
  10. 计算机网络-协议与层级划分