首页技术js 数组去重 angularjs数组去重

js 数组去重 angularjs数组去重

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

这篇文章给大家聊聊关于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 数组 数据去重排序

1.概念(什么叫数组):

数组是一个可以存储一组或一系列相关数据的容器。

2.数组元素(数组的内容)

是指存储在数组中并赋予唯一索引号(下标)的数据段。

数组元素的数据类型可以不相同。

通过下标或者索引号能获取到数组相对应得内容。

3.作用:

为了解决大量相关数据的存储和使用的问题。

4:创建数组的方法:

格1:通过关键字new创建数组

var arr=new Array(0,1,2,3)

格2:通过字面量创建数组(通过中括号创建数组)

var arr=[0,1,2,3];

不同点:

(1)创建方式和形式不同

(2)数组中如果是一个数字的话,就是一个值

eg:var arr=[4];这个数组中只有一个数字的话,就是一个数

var arr=new Arrary(4);这个数组中只有一个数字的话,表示分配的空间

5:获取数组的长度属性 length

6:instanceof用于判断一个变量是否是某个对象的实例

var a=["静夜思","野草","忆江南","浣溪沙"];

var a=45;

alert(a instanceof Array);

7: new Array()对象方法

slice()获取数组中的某段数组元素

(取值是以下标开始,0代表第一个值,从前往后算,-1代表最后一个值,从后往前算)

unshift()在数组开头添加元素

push()在数组末尾添加元素

shift()删除数组中的第一个元素

pop()删除数组中的最后一个元素

toString()将数组转换为字符串

join()将数组元素连接成字符串

concat()多个数组连接成字符串

sort()数组元素正排序

reverse()数组元素反向排序

splice()删除数组元素/替换数组元素

indexOf()指定数组中元素首次出现的下标,找不到元素返回-1

8:多维数组输出

9:数组去重

10:数组排序

11:数组去重+排序

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

原神洞天百货?原神洞天宝货mp4下载小说视频教程(如何在mp4下载电子书)