Javascript中数组查重的⽅法总结⼤全
数组查重:简单点说,就是出数组中重复的元素然后去除,最后得到⼀个没有重复元素的数组。
// ⽅法⼀思路:
1.构建⼀个新的数组,⽤于存放结果。
2.for循环中每次从数组取出⼀个元素,⽤这个元素与结果数组的中的每个元素相⽐。
3.若结果数组中没有和取出的元素相同,则存放在结果数组中。
[javascript]
1. //⾃定义函数
2. var ret= function(arr){
3. var res=[arr[0]];
4. for(var j=1;j<arr.length;j++){
5. var repeat= false;
6. for(var i=0;i<res.length;i++){
7. if(arr[j]==res[i]){
8. repeat=true;
9. break;
10. }
11. }
12. if(!repeat){
13. res.push(arr[j]);
14. }
15. }
16. return res;
17. };
18. var a=[1,3,4,3,5,'aa','bb','aa'];
19. document.write(ret(a)); //1,3,4,5,aa,bb
20.
21. //或者给数组添加⽅法
22. = function(){
23. var res=[this[0]];
24. for(var j=1;j<this.length;j++){
25. var repeat= false;
26. for(var i=0;i<res.length;i++){
27. if(this[j]==res[i]){
28. repeat=true;
29. break;
30. }
31. }
32. if(!repeat){
33. res.push(this[j]);
34. }
35. }
36. return res;
37. }
38. var a=[1,3,4,3,5,'aa','bb','aa'];
39. document.()); //1,3,4,5,aa,bb
//⽅法⼆思路:(有点:查重效率⾼;缺点:由于查重之前对数组进⾏了排序,还回结果也是排序的,如果不改变原数组的顺序去重,那这种⽅法便不可取了。)
1.⾸先给原数组进⾏排序。
2.检查原数组的第i个元素与结果数组的最后⼀个元素是否相等。因为已经排序,所以重复元素会在相邻位置。
3.如果不相同,则将该元素存⼊结果数组中。
[javascript]
1. //⾃定义函数
2. var ret1= function(arr){
3. arr.sort();
4. var res= [arr[0]];
5. for(var i=1;i<arr.length;i++){
6. if(arr[i]!=res[res.length-1]){
7. res.push(arr[i]);
8. }
9. }
10. return res;
11. }
12. var b= [1,3,4,2,3,4];
13. document.write(ret1(b)); //1,2,3,4
14.
15. //或者给数组添加⽅法
16. 1= function(){
17. this.sort();
18. var res= [this[0]];
19. for(var i=1;i<this.length;i++){
20. if(arr[i]!=res[res.length-1]){
21. res.push(this[i]);
22. }
23. }
24. return res;
25. }
26. var b= [1,3,4,2,3,4];
27. document.1()); //1,2,3,4
28.
/⽅法三思路:(推荐使⽤这个⽅法)
1.定义⼀个结果数组存放结果。
2.创建⼀个新对象。
3.for循环的时候,每次取出⼀个元素与对象对⽐,如果这个元素不重复则把它放在结果数组⾥,同时把这个元素的内容作为对象的属性,并赋值为1。
说明:⾄于如何对⽐取出的元素与对象,就是每次从原数组取出⼀个元素,然后到对象中访问这个属性,如果访问到值,则说明重复。[javascript]
1. //⾃定义函数
2. var ret2= function(arr){
3. var res=[];
4. var json={};javascript数组对象
5. for(var i=0;i<arr.length;i++){
6. if(!json[arr[i]]){
7. res.push(arr[i]);
8. json[arr[i]]=1;
9. }
10. }
11. return res;
12. }
13. var c=[1,2,3,2,1];
14. document.write(ret2(c)); //1,2,3
15.
16. //或者给数组添加⽅法
17. 2= function(){
18. var res=[];
19. var json={};
20. for(var i=0;i<this.length;i++){
21. if(!json[this[i]]){
22. res.push(this[i]);
23. json[this[i]]=1;
24. }
25. }
26. return res;
27. }
28. var c=[1,2,3,2,1];
29. document.2()); //1,2,3
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论