• js---去重方法(一)


    1.遍历数组法
      最简单的去重方法,实现思路:新建一个数组,遍历传入数组,值不在新数组就加入该新数组 
      注意点:判断值是否在数组的方法indexOf是ES5方法

    function unique(array){
    	var n = [];//一个新的临时数组
    	//遍历当前数组
    	for(var i = 0;i < array.length;i++){
    		//如果当前数组的第i已经保存进了临时数组,那么跳过,
    		//否则把当前项push到临时数组里面
    		if(n.indexOf(array[i])==-1){
    			n.push((array[i]))
    		}
    	}
    	return n;
    }
    var array = [1,2,1,2,1,2,1,2,1,1];
    console.log(unique1(array)) // 1 2
    

    2 利用for嵌套for ,然后splice去重

    function unique(array){
    	for (var i = 0;i<array.length;i++) {
    		for (var j = i + 1;j<array.length;j++) {
    			if(array[i]==array[j]){
    				array.splice(j,1);
    				j--;
    			}
    		}
    	}
    	return array
    }
    var array = [1,2,3,2,2,3,9,4]
    console.log(unique(array)) // 1 2 3 9 4
    

    3 利用ES6 Set去重 

    function unique(array){
    	// return Array.from(new Set(array))    // 雷同 [... new Set(array)]
    		return [... new Set(array)]
    }
    var array = [1,2,3,1,2,3];
    console.log(unique(array)); // 1 2 3
    

    4.利用sort()排序方法 ,然后根据排序后的结果进行遍历及相邻元素比对

    function unique(arr){
    	if(!Array.isArray(arr)){
    		return
    	}
    	arr = arr.sort();
    	var array = [arr[0]];
    	for(var i = 1;i<arr.length;i++){
    		if(arr[i]!==arr[i-1]){
    			array.push(arr[i])
    		}
    	}
    	return array
    }
    var arr = [1,2,3,1,2,3];
    console.log(unique(arr)) // 1 2 3
    

    5 利用 includes 检测数组是否有某个值 

    function unique(arr){
    	if(!Array.isArray(arr)){
    		return
    	}
    	var array = [];
    	for(var i = 0;i<arr.length;i++){
    		if(!array.includes(arr[i]))
    		array.push(arr[i])
    	}
    	return array
    }
    var arr = [1,2,3,1,2,3]
    console.log((unique(arr))) // 1 2 3
    

      

  • 相关阅读:
    javascript数组对象
    jquery、javascript实现(get、post两种方式)跨域解决方法
    js检查字符串的包含关系
    element——message消息提示
    js把mysql传过来的时间格式化为:0000-00-00 00:00:00
    beego orm操蛋问题:操作都需要主键
    element——message-box
    VUE.js全局变量的定义
    element el-upload组件获取文件名
    go遍历某个文件夹
  • 原文地址:https://www.cnblogs.com/ccyq/p/11335194.html
Copyright © 2020-2023  润新知