js中数组去重的方法

数组去重有的方法:

1、用 ES6 中的 Set 数据结构:

复制代码
let array = [1, 2, 2, 3, 4, 4, 5];
let uniqueArray = [...new Set(array)];
console.log(uniqueArray); // [1, 2, 3, 4, 5]

2、这种方法利用了 Set 对象不允许包含重复项的特性。你也可以使用 ES5 的方法,如下所示:

复制代码
var array = [1, 2, 2, 3, 4, 4, 5];
var uniqueArray = array.filter(function(item, index, self) {
    return self.indexOf(item) === index;
});
console.log(uniqueArray); // [1, 2, 3, 4, 5]

这个方法使用了 filter 函数和 indexOf 方法来创建一个新数组,其中包含原始数组中的唯一项。

下面的是函数方法:

复制代码
      Array.prototype.method1 = function(){
            var arr[];    //定义一个临时数组
            for(var i = 0; i < this.length; i++){    //循环遍历当前数组
                //判断当前数组下标为i的元素是否已经保存到临时数组
                //如果已保存,则跳过,否则将此元素保存到临时数组中
                if(arr1.indexOf(this[i]) == -1){
                    arr.push(this[i]);
                }
            }
            return arr;
        }


        Array.prototype.method2 = function(){
            var h{};    //定义一个hash表
            var arr[];  //定义一个临时数组
            
            for(var i = 0; i < this.length; i++){    //循环遍历当前数组
                //对元素进行判断,看是否已经存在表中,如果存在则跳过,否则存入临时数组
                if(!h[this[i]]){
                    //存入hash表
                    h[this[i]] = true;
                    //把当前数组元素存入到临时数组中
                    arr.push(this[i]);
                }
            }
            return arr;
        }

 Array.prototype.method3 = function(){
            //直接定义结果数组
            var arr[this[0]];
            for(var i = 1; i < this.length; i++){    //从数组第二项开始循环遍历此数组
                //对元素进行判断:
                //如果数组当前元素在此数组中第一次出现的位置不是i
                //那么我们可以判断第i项元素是重复的,否则直接存入结果数组
                if(this.indexOf(this[i]) == i){
                    arr.push(this[i]);
                }
            }
            return arr;
        
        }

 Array.prototype.method4 = function(){
            //将数组进行排序
            this.sort();
            //定义结果数组
            var arr[this[0]];
            for(var i = 1; i < this.length; i++){    //从数组第二项开始循环遍历数组
                //判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组
                if(this[i] !== arr[arr.length - 1]){
                    arr.push(this[i]);
                }            
            }
            return arr;
            
        }

数组去重一般多用于数据处理使,进行数据添加时使用 ,大家可以根据情况进行使用

希望可以帮到大家;

相关推荐
Highcharts.js9 分钟前
可视化商用图表库对比,如何选择?
前端·javascript·学习·信息可视化·highcharts·前端可视化
TheITSea1 小时前
JavaScript Web APIs
开发语言·前端·javascript
开开心心就好1 小时前
以图搜图找重复图片,本地工具离线就能用
javascript·智能手机·ffmpeg·c#·ocr·word·音视频
企业数字化笔记2 小时前
视频局部合成怎么做得自然?掩膜修复、边缘羽化、时序稳定与背景替换
java·javascript·音视频
liangshanbo12154 小时前
JavaScript 面试题:Object.keys() 的返回顺序是无序的吗?
开发语言·javascript·ecmascript
默_笙16 小时前
🚦 请三个 AI 考官给 RAG 打分:量化评估实战(下)
前端·javascript
阿坨16 小时前
灵感闪存卡:一款 Tampermonkey用户脚本
javascript·tampermonkey
朝朝辞暮i18 小时前
C++ 第 25 课:getter / setter + this
java·javascript·c++
蜗牛互联网19 小时前
Python接入Gemini 3.8 Flash实现票据视觉抽取与规则校验
java·javascript·网络·人工智能·python
xieter20 小时前
【技术精选】深入浅出现代前端渲染与性能优化实践指南 (2026-10-04)
前端·javascript