首页技术js数组去重最简单的方法,angularjs数组去重

js数组去重最简单的方法,angularjs数组去重

编程之家2026-06-041178次浏览

大家好,今天来为大家分享js数组去重最简单的方法的一些知识点,和angularjs数组去重的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

js数组去重最简单的方法,angularjs数组去重

JS数组去重的几种常见方法

js数组去重

1

注:应该也可以适用于 object数组,但是本人没有进行验证,贴出来仅供你参考

第一种是比较常规的方法思路:1.构建一个新的数组存放结果2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比3.若结果数组中没有该元素,则存到结果数组中代码如下:

Array.prototype.unique1= function(){ var res= [this[0]]; for(var i= 1; i< this.length; i++){ var repeat= false; for(var j= 0; j< res.length; j++){ if(this[i]== res[j]){ repeat= true; break;}} if(!repeat){ res.push(this[i]);}} return res;}var arr= [1,'a','a','b','d','e','e', 1, 0]alert(arr.unique1());

第二种方法比上面的方法效率要高思路:1.先将原数组进行排序2.检查原数组中的第i个元素与结果数组中的最后一个元素是否相同,因为已经排序,所以重复元素会在相邻位置3.如果不相同,则将该元素存入结果数组中代码如下:

js数组去重最简单的方法,angularjs数组去重

Array.prototype.unique2= function(){ this.sort();//先排序 var res= [this[0]]; for(var i= 1; i< this.length; i++){ if(this[i]!== res[res.length- 1]){ res.push(this[i]);}} return res;}var arr= [1,'a','a','b','d','e','e', 1, 0]alert(arr.unique2());

二种方法也会有一定的局限性,因为在去重前进行了排序,所以最后返回的去重结果也是排序后的。如果要求不改变数组的顺序去重,那这种方法便不可取了。第三种方法(推荐使用)思路:1.创建一个新的数组存放结果2.创建一个空对象3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。说明:至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。代码如下:

Array.prototype.unique3= function(){ var res= []; var json={}; for(var i= 0; i< this.length; i++){ if(!json[this[i]]){ res.push(this[i]); json[this[i]]= 1;}} return res;}var arr= [112,112,34,'你好',112,112,34,'你好','str','str1'];alert(arr.unique3());

js中数组去重方法总结

1.es6有了Set,可以通过成员唯一性去重

2.使用数组对象的lastIndexOf()方法。

(关于lastIndexOf():( )

js数组去重最简单的方法,angularjs数组去重

3.定义新数组,存入原数组第一个元素,再将原数组元素和新数组元素比较,不同的继续push到新数组。

4.splice()方法从数组中添加/删除重复值。

5.使用includes()方法{ps:可搭配foreach()方法||filter()方法;}。

6.采用indexOf()获取索引查询去重

7.利用对象属性存在与否判断,这个方法没什么意思,但是也可行

JS 中常见的几种去重方法

ES6提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

Set本身是一个构造函数,用来生成 Set数据结构。

利用的算法类似'===',与'==='的区别是‘===’认为 NaN!= NaN, set的算法认为它们是相等的。

但 Set不支持对象方法,认为对象都是不相等的。

原理: splice会改变原数组

filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

indexOf( searchvalue, fromindex)

searchvalue:必填值,规定需检索的字符串值

fromindex:选填值,规定在字符串中开始检索的位置。它的合法取值是 0到 stringObject.length- 1。

如省略该参数,则将从字符串的首字符开始检索。

原理:相邻元素对比法,若相等则去掉一个

注:array.sort( function)参数必须是函数,可选,默认升

OK,关于js数组去重最简单的方法和angularjs数组去重的内容到此结束了,希望对大家有所帮助。

什么是javaconfig,java读取configcss设置按钮样式(css图标型按钮)