JavaScript数组去重方法总结
一、双重遍历去重
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function onlyFigure(arr) { let newarr = []; const length = arr.length for ( let i = 0; i < length; i++) { for ( let j = i + 1; j < length; j++) { if (arr[i] === arr[j]) { i++; j=i; } } newarr.push(arr[i]) } console.log(newarr); } onlyFigure([0,0,1,2,4,2,1,6,5]); |
二、原数组下标indexOf去重
1 2 3 4 5 6 7 8 9 10 11 | function onlyFigure(arr) { let newarr = []; for ( let i = 0; i < arr.length; i++) { if (arr.indexOf(arr[i]) == i) { //console.log(arr.indexOf(arr[i])); newarr.push(arr[i]); } } console.log(newarr); } onlyFigure([0,0,1,2,4,2,1,6,5]); |
三、新数组indexOf去重
1 2 3 4 5 6 7 8 9 10 | function only(arr) { let newarr = []; let len = arr.length; for ( let i = 0 ; i < len ; i ++ ) { if (newarr.indexOf(arr[i]) === -1) { newarr.push(arr[i]) } } return newarr } |
四、es6 Set去重
1 2 3 | function onlyNum(arr) { return Array. from ( new Set(arr)) } |
五、for...of + Object
利用对象的属性不会重复这一特性,校验数组元素是否重复
1 2 3 4 5 6 7 8 9 10 11 12 13 | function distinct(arr) { let result = [] let obj = {} for ( let i of arr) { if (!obj[i]) { result.push(i) obj[i] = 1 } } return result } |
参考(引用)链接:https://www.cnblogs.com/wisewrong/archive/2018/09/20/9642264.html
【推荐】AI 的力量,开发者的翅膀:欢迎使用 AI 原生开发工具 TRAE
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何正确实现一个 BackgroundService
· 抽象与性能:从 LINQ 看现代 .NET 的优化之道
· AI 时代,为什么我们还有必要写博客?
· 行业思考:不是前端不行,是只会前端不行
· C#高级GDI+实战:从零开发一个流程图
· 记一次酣畅淋漓的js逆向
· 被 DDoS 攻击的一夜
· 一个被BCL遗忘的高性能集合:C# CircularBuffer<T>深度解析
· 如何正确实现一个 BackgroundService
· 上周热点回顾(7.28-8.3)