浅谈js中,关于数组去重的几种方法
2020-04-07 12:35
1391 查看
js中数组的去重方法
在程序的编写过程中,我们经常会遇到将数组去重的问题,下面我们简单来探讨一下。
咱们假设一个数组出来
- 双重for循环来去重
循环遍历数组中的每一个单元,跟其之后的单元进行比较,如果相同,就删除之后的单元 var arr=[1,1,1,2,3,3,4,2,5,5,7,8]; for(let i=0;i<arr.length;i++){ for(let j=i+1;j<arr.length-1;j++){ if(arr.[i]===arr.[j]){ arr.splice(j,1); j--; } } } console.log(arr)//[1, 2, 3, 4, 5, 7, 8]
2.利用数组的排序方法再进行循环删除
var arr=[1,1,1,2,3,3,4,2,5,5,7,8]; arr.sort((a,b)=>{return a-b}); console.log(arr);//[1, 1, 1, 2, 2, 3, 3, 4, 5, 5, 7, 8] for (let i = 0; i <= arr.length - 1 - 1; i++) { if (arr[i] === arr[i + 1]) { arr.splice(i + 1, 1); i--; } } console.log(arr);//[1, 2, 3, 4, 5, 7, 8]
3.利用对象中不能储存相同的键名这一特点来去重
var arr=[1,1,1,2,3,3,4,2,5,5,7,8]; const obj = {}; arr.forEach(function (val, key) { obj[val] = 'haha'; }); const newArr = []; for (let key in obj) { newArr.push(key); } console.log(obj);//{1: "haha", 2: "haha", 3: "haha", 4: "haha", 5: "haha", 7: "haha", 8: "haha"} console.log(newArr);//["1", "2", "3", "4", "5", "7", "8"]
4.利用indexof方法来判断要写入的数值是否已存在新数组中
var arr=[1,1,1,2,3,3,4,2,5,5,7,8]; const newArr = []; for (let i = 0; i < arr.length; i++) { if (newArr.indexOf(arr[i]) == -1) {//-1,说明不存在 newArr.push(arr[i]); } } console.log(newArr);//[1, 2, 3, 4, 5, 7, 8]
5.将数组单元赋值给set数据类型
set数据类型中不会储存相同的数据,自动去重
var arr=[1,1,1,2,3,3,4,2,5,5,7,8]; const newArr = [...new Set(arr)]; console.log(newArr);//[1, 2, 3, 4, 5, 7, 8]
以上,就是数组去重的部分方法,欢迎大家交流讨论。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- js闭包
- JavaScript学习笔记一20200323
- 都前后端分离了,咱就别做页面跳转了!统统 JSON 交互
- flexible.js适配方案前期准备~
- js中的.和[]中括号的区别
- egg学习笔记第二天:egg.js目录结构介绍、定义controller以及配置路由、egg目录约定规范、vscode+egg开发工具配置
- js关于遍历对象 遍历原型上的属性和不遍历原型上的属性
- 解决json中ensure_ascii=False的问题
- js实现登录时记住密码的方法分析
- JS获取HTML和DOM元素的方法
- cesium结合geoserver利用WFS服务实现图层编辑(附源码下载)
- JavaScript中的普通for循环和 for in循环
- JavaScript严格模式到底是何方神圣
- JavaScript闭包
- JavaScript中Math对象的基本应用
- JavaScript中的typeof和数据类型介绍
- JS设计模式简介
- 前端JavaScript设计模式-代理模式实现
- JSky使用教程
- Javascript之深入浅出递归思想