使用js给数组去重的3种常用方法

首先定义一个数组,下面的三种方法将都是用该数组操作

// 定义一个数组
  var arr=[‘js‘,‘js‘,‘js‘,‘html‘,‘js‘,‘java‘,‘c++‘,‘css‘,‘html5‘,‘c#‘,‘c#‘,‘css‘,‘html‘,‘js‘];

1.第一种方法

 1 Array.prototype.unique1=function(){
 2       for(var i=0;i<this.length-1;i++){
 3         for(var j=1;j<this.length;j++){
 4           if(this[i]==this[i+j]){
 5             this.splice(i+j,1);
 6             j--;
 7           }
 8         }
 9       }
10       return arr;
11     }
12     console.log(arr.unique1());

2.第二种方法

 1 Array.prototype.unique2=function(){
 2       var n = []; //一个新的临时数组
 3       for (var i= 0;i<this.length;i++){
 4         //如果当前数组的第i已经保存进了临时数组,那么跳过,
 5         //否则把当前项push到临时数组里面
 6         if (n.indexOf(this[i]) == -1) n.push(this[i]);
 7       }
 8       return n;
 9     }
10     console.log(arr.unique2());

3.第三种方法:此方法改变了数组的顺序

 1 Array.prototype.unique3 = function(){
 2       this.sort();
 3       var re=[this[0]];
 4       for(var i=1;i<this.length;i++){
 5         if(this[i]!==re[re.length-1]){
 6           re.push(this[i]);
 7         }
 8       }
 9       return re;
10     }
11     console.log(arr.unique3());
时间: 2024-12-28 21:53:13

使用js给数组去重的3种常用方法的相关文章

js中数组去重的几种方法

js中数组去重的几种方法         1.遍历数组,一一比较,比较到相同的就删除后面的                 function unique(arr){                         for(var i=0;i<arr.length;i++){                                 for(var j=i+1;j<arr.length;j++){                                         if(ar

整理数组去重的几种常用方法

最近面试有一个面试题,要求尽可能多的列举数组去重的方法,现整理一下 1.最简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.pu

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

JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.push(array[i]); } } ret

JavaScript数组去重的四种方法

今天,洗澡的想一个有趣的问题,使用js给数组去重,我想了四种方法,虽然今天的任务没有完成,5555: 不多说,po代码: //方法一:简单循环去重    Array.prototype.unique1 = function(){                var temp = [];        for(var i=0; i < this.length; i++){            if(temp.indexOf(this[i]) == -1){                tem

数组去重的几种方法

JS数组去重的几种常见方法 JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.push(arra

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

数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.push(array[i]); } } retur

【学】数组去重的3种方式

数组去重的3种方式 var arr = [1,4,2,3,4,5,6,7,3,4,5,23,2,3,4,5,3,2,3,4,5];   function findInArray(n,arr){ for (var i=0; i<arr.length; i++) { if(arr[i]==n){ return true; } } return false; }   function removeRep1(arr){ //方法2 var arr1 = []; for (var i=0; i<arr.

有序数组去重的几种算法

最差的算法: 最差的算法: 去重,与数组是否有序无关 public void noDups(){ //从0开始遍历 for(int i=0; i<nElems-1; i++){ //与后面每一个比较 for(j=i+1; j<nElems; j++){ //如果相等,后面的所有的项向前移动,总数-1 if(a[i]==a[j]){ for(k=j+1; k<nElems; k++){ a[j] = a[j+1]; nElems--; } } } } } 把后面不同的往前 public v

Javascript数组去重的几种方法

Javascript数组去重的几种方法 新建空数组,通过for...of(ES6)循环遍历,通过indexOf判断元素是否在新数组中存在,将不存在的(indexOf(n)==-1)元素push到新数组中: let arr = [1,1,2,2,3,6,3,77,88,5,98,9,7,2,7,5,3,4,2]; function removeDup_indexOf(originalArr){ let newArr = []; for(n of originalArr){ if(newArr.in