精华内容
下载资源
问答
  • 数组去重方法

    2021-09-08 08:37:46
    文章目录一、常见数组去重1.遍历数组法2.双重循环去重3.Set去重(ES6)二、json数组去重 提示:最近做数组去重遇到些问题,这里简单记录一下 一、常见数组去重 1.遍历数组法 var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2] ...


    提示:最近做数组去重遇到些问题,这里简单记录一下


    一、常见数组去重

    1.遍历数组法

    var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2]
    var newArr = []
    for (var i = 0; i < arr.length; i++) {
    	//indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置
        if (newArr.indexOf(arr[i]) == -1) {
        	//数组中没找到字符串则返回 -1,push到新数组里
            newArr.push(arr[i])
        }
    }
    console.log(newArr) // 结果:[2, 8, 5, 0, 6, 7]
    

    2.双重循环去重

    var arr=["你","我","他","她","他"]
    var newArr=[]
    newArr[0]=arr[0]
    for(let i=0;i<arr.length;i++){
    	for(let j=0;j<newArr.length;j++){
    		//原数组的值等于新数组的值,跳出循环
    		if(newArr[j]==arr[i]) break
        	//原数组中的某个元素比到新数组最后一个都还没有重复,则push到新数组
        	if(j==newArr.length-1) newArr.push(arr[i])
         }
     }
    console.log(newArr)	//结果:["你","我","他","她"]
    

    3.Set去重(ES6)

    var arr = [2, 8, 5, 0, 5, 2, 6, 7, 2]
    var newArr=[...new Set(arr)]
    console.log(newArr)	//结果:[2, 8, 5, 0, 6, 7]
    

    二、json数组去重

    let mode=[
    	{
        	name:"1",
            code:111
        },{
            name:"2",
            code:222
        },{
            name:"3",
            code:333
        },{
            name:"2",
            code:222
        }]
    for(let j=0;j<mode.length;j++){
    	for(let k=j+1;k<mode.length;){
    		//判断条件根据个人需求确定
            if(mode[j].name==mode[k].name && mode[j].code==mode[k].code){
    			//如果第一个等于第二个,splice方法删除第二个,数组长度减一
                mode.splice(k,1)
            }
            else k++;
        }
    }
    console.log(mode)	//结果:[{name:"1",code:111},{name:"2",code:222},{name:"3",code:333}]
    
    展开全文
  • 主要介绍了javascript数组去重方法,通过2个示例对比分析了javascript数组去重的原理与操作技巧,需要的朋友可以参考下
  • 主要介绍了javascript数组去重终极总结,本文列举了3种javascript数组去重方法,并分别分析了它们的优缺点,需要的朋友可以参考下
  • 给大家总结下JS实现数组去重方法(六种方法),面试中也经常会遇到这个问题。文中给大家引申的还有合并数组并去重的方法,感兴趣的朋友跟随脚本之家小编一起学习吧
  • 主要介绍了javascript数组去重方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 本文主要介绍了js实现数组去重方法及效率對比。具有很好的参考价值,下面跟着小编一起来看下吧
  • js中最简单最实用的数组去重方法

    万次阅读 多人点赞 2018-10-10 13:25:36
    网上有很多关于数组去重的博客文章,方法各式各样,但有些方法实用性很差,很容易造成不必要的麻烦,所以我们需要去其糟粕取其精华,下面我们就整理一些比较实用的数组去重方法。 一、for循环嵌套,利用splice去重 ...

    js数组去重是比较常见的数组操作方式之一,网上有很多关于数组去重的博客文章,方法各式各样,但有些方法实用性很差,很容易造成不必要的麻烦,所以我们需要去其糟粕取其精华,下面我们就整理一些比较实用的数组去重方法。

    一、for循环嵌套,利用splice去重

    此方法是比较常用的方法之一,也是es5中比较实用的方法之一。话不多说,上代码:

    function newArr(arr){
        for(var i=0;i<arr.length;i++){
            for(var j=i+1;j<arr.length;j++){
                if(arr[i]==arr[j]){ 
                //如果第一个等于第二个,splice方法删除第二个
                arr.splice(j,1);
                j--;
                }
            }
        }
        return arr;
    }
    
    var arr = [1,1,2,5,6,3,5,5,6,8,9,8];
    
    console.log(newArr(arr))

    二、建新数组,利用indexOf去重

    此方法也是es5中比较简单的方法之一,基本思路是新建一个数组,原数组遍历传入新数组,判断值是否存在,值不存在就加入该新数组中;值得一提的是,方法“indexOf”是es5的方法,IE8以下不支持。话不多说,上代码:

    
    function newArr(array){ 
        //一个新的数组 
        var arrs = []; 
        //遍历当前数组 
        for(var i = 0; i < array.length; i++){ 
            //如果临时数组里没有当前数组的当前值,则把当前值push到新数组里面 
            if (arrs.indexOf(array[i]) == -1){ 
                arrs.push(array[i])
            }; 
        } 
        return arrs; 
    }
    
    var arr = [1,1,2,5,5,6,8,9,8];
    
    console.log(newArr(arr))

    三、ES6中利用Set去重

    此方法是所有去重方法中代码最少的方法,代码如下:

    function newArr(arr){
        return Array.from(new Set(arr))
    }
    
    var arr = [1,1,2,9,6,9,6,3,1,4,5];
    
    console.log(newArr(arr))

     

    展开全文
  • javascript数组去重方法汇总 Array.prototype.unique1 = function () { var n = []; //一个新的临时数组 for (var i = 0; i < this.length; i++) //遍历当前数组 { //如果当前数组的第i已经保存进了临时数组...
  • js数组去重方法

    2021-10-18 12:16:17
    js数组去重:项目中需求是选择一些数据,但是不能重复出现同样的数据,这里就要用到JS数组去重,以下几种数组去重方法简单实用哦! 方法一:利用数组的indexOf方法去重 需求: 利用indexOf判断是否存在于新数组中...

    js数组去重:项目中需求是选择一些数据,但是不能重复出现同样的数据,这里就要用到JS数组去重,以下几种数组去重方法简单实用哦!

    方法一:利用数组的indexOf方法去重
    需求:

    利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组

    1. 需要一个数组用于存放筛选之后的数据

    2. 遍历原来的数组,把不是0的数据添加到新数组里面

    3. 新数组里面的个数,用length不断累加

      

          var arr = [58, 6, 8, 56, 0, 8];
    			function unique() {
    				var newArr = [];
    				for (var i = 0; i < arr.length; i++) {
    					if (newArr.indexOf(arr[i]) === -1) {
    						newArr.push(arr[i]);
    					}
    				}
    				return newArr;
    			}
    			var arr = unique([58, 6, 8, 56, 0, 8]);
    			console.log(arr);
     


       方法二 :使用双重for循环,再利用数组的splice方法去重

     

     

       var arr = [0,69,58,38,0,77,69];
    			for (var i = 0; i < arr.length; i++) {
    				for (var j = i + 1; j < arr.length; j++) {
    					if (arr[j] == arr[i]) {
    					//splice(索引,长度,添加)
    						arr.splice(j, 1);
    						j--;
    					}
    				}
    			}
    			console.log(arr);

    方法三:利用ES6中set方法去重

     
    
        var arr1 = [25, 2, 13, 25,2,66,99];
        var sum = new Set(arr1);
    	console.log(sum);

    展开全文
  • 数组去重方法整理

    2019-11-09 17:25:45
    数组去重方法整理方法一方法二方法三 数组去重看似一个简单的问题,随着我们的学习,对于新知识的掌握这个曾经困着我们的问题逐渐变得游刃有余。要去重,中心解决办法就是比较该数组中是否重复的元素,而后将重复的...

    数组去重方法整理


    数组去重看似一个简单的问题,随着我们的学习,对于新知识的掌握这个曾经困着我们的问题逐渐变得游刃有余。要去重,中心解决办法就是比较该数组中是否重复的元素,而后将重复的元素去掉。以下带来几个楼主折磨自己中研究出的一点方法~~

    方法一

    for循环法~~
    思路:将数组中的每一个数与数组中其他的数进行比较,看是否有相同的。如果没有相同的那么该数即直接放到新数组里。新的数组中就是无重复的数组。

    实例:
    function solution1(){
       		var arr = [1,1,1,3,4,3,4,6,8,3,1,2];
       		var res = [];
       		for(var i = 0; i < arr.length; i ++){              // 第一层for用来控制循环的次数
       			for(var j = 0; j < i; j++){          //第二层for 用于控制与第一层比较的元素
       				if(res[j] == arr[i])
       					break;
       			}
       			//注:关键:没有吧后面的IF放入循环,所以第一次会循环进if(res.length == j),让res有一个初始的值。
       			if(res.length == j)                     //这个的思路比较巧妙,意思是:当该数比较到最后一位都没有数与它相等,那么直接可以表明这个数在该数组中没有重复的,可以直接输出。res[res.length] = arr[i];
       		}
       		document.writeln( res);
       	}
       	solution1();
    

    方法二

    hash数组法~hash数组法即用原数组中的元素作为新数组的下标。如果hash数组(或者理解为对象)里没有这个属性的话(即:该数组的项没有被定义)就会返回undefined。 利用这个原理,当返回的是undefined时 ,把这个元素放入数组中, 然后在给这个属性赋值

    function fun2() {
       		var arr = [1,1,1,3,4,3,4,6,8,3,1,2];
       		document.writeln(arr + "<br>" );
       		for(var i = 0, hash = [], res = []; i < arr.length; i++){
       			if(hash[arr[i]] === undefined){        //如果hash数组(或者理解为对象)里没有这个属性的话(即:该数组的项没有被定义)就会返回undefined。
       				res[res.length] = arr[i];               //将这个不重复的元素添加到新数组中。
       				hash[arr[i]] = true;
       			}
       		}
       		document.writeln( res + "<br>");
       	}
       	fun2();
    

    方法三

    当然有朋友就会问了,之前的都是以生成新的数组来避开对原数组的更改。如果想在原数组上怎么办?
    这里用方法1引申一下。具体如下所示:

     function fun3() {          
    	    	 var arr = [1,1,1,3,4,3,4,6,8,3,1,2];
      	        for(var i=0; i<arr.length; i++){            // for用来控制循环的次数   
                for(var j=i+1; j<arr.length; j++){      //第二层for 用于控制与第一层比较的元素
                 if(arr[i] == arr[j]){                 //如果想相等的元素,就删除后面的那个元素 即(即arr[j] 这个元素)
                        arr.splice(j,1);
                         j--;                         // j--很关键!!!因为每次使用splice删除元素时,原数组改变,后面的元素下标会发生改变。比如删除了原本的第二位,那么原本的第三位就变成新的第二位了。这意味这数组下次遍历是 比较市跳过了一个元素。所以,做J--来保证纵然是那出了之后仍然会与每一个数进行比较~~
    							 	   }
     											  }
    									        }
     
         document.writeln(arr);
        }
    

    若要在方法二上使用也是一样的道理!J - -至关重要!

    展开全文
  • Python处理数组去重方法

    千次阅读 2020-12-25 14:03:48
    Python处理数组去重方法 方法一 通过set进行处理 方法二 方法三 方法四 方法五 不建议使用 方法六
  • js最简单的数组去重方法set数组去重 function newArr(arr) { return Array.from(new Set(arr)) }
  • JAVA数组去重方法

    千次阅读 2020-09-14 19:50:20
    记录JAVA中数组去重方法 1利用Set的特性去重复 Set set = new HasSet(); for (int x=0 ; x<arr.length ; x++){ set.add(arr[x]); } 最后set里面的值就是arr数组去重后的所有元素,但是set中数据是无序的,...
  • 数组去重方法 arr //将要去重的数组 model //判断数组去重的字段 function unique ( arr,model ) { //数组去重 let res = [arr[0]]; console.log(res) for (let i = 0; i &amp;lt; arr.length; i++) { let ...
  • js数组去重方法

    2017-05-17 17:30:55
    js数组去重方法1.数据格式:var arr = [1,1,1,1,1,2,2,2,3,4,4,5,6,7,7,7,7,8,9,9,9];2.去重方法: //数组去重 function uniqueList(array){ var r = []; for(var i = 0, l = array.length; i ; i++) { for
  • JS数组去重方法

    千次阅读 多人点赞 2021-03-09 13:32:52
    javaScript 数组去重的常用方法及实现原理
  • 史上最简单的数组去重方法 史上最简单的数组去重方法 let arr = [1,2,3,4,5,6,7] //Set 去重变成对象 // ...是展开运算符 let resarr = [...new Set(arr)]
  • php一维数组去重方法

    2020-10-22 10:46:03
    PHP一维数组去重方法array_unique() array_unique() :去除数组中的重复项,只适用于一维数组
  • 简单的数组去重方法

    2021-04-28 15:37:24
    史上最简单的数组去重方法 let arr = [1,2,3,4,5,6,7] //Set 去重变成对象 // ...是展开运算符 let resarr = [...new Set(arr)]
  • 数组去重方法繁多,今日项目中偶有小用,决定参略一二,以备他用 方法构建 var list=["老王","老王","老王","老李","老王","老王","老李","老王","小三","小三","老王"]; 我们的目标就是将上面的数组去重 想法: 数组...
  • 常用的JS数组去重方法大全

    千次阅读 多人点赞 2020-04-04 13:43:45
    我们要想使用数组去重,那就必须对数组有一定的了解,关于JS数组的一些方法以及使用,可参考: ①JavaScript 内置对象之-Array ②ES5新增数组方法 ③浅谈JavaScript中ES6新增的Set和Map结构以及Array.from方法 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,188
精华内容 34,875
关键字:

数组去重方法