zoukankan      html  css  js  c++  java
  • 数组去重的方法

    var arr = [1,5,9,8,7,5,42,4,5]
    // 方法一:利用set
    console.group('set去重:')
    function noRepeat(arr){
    if(arr instanceof Array){
    var result = new Set(arr)
    arr = Array.from(result)
    return arr
    }
    }
    var myArr =noRepeat(arr)
    console.log(myArr)
    console.groupEnd()
    
    // 方法二:利用indexOf
    console.group('indexOf去重:')
    function noRepeat1(arr){
    var arr1 = []
    if(arr instanceof Array){
    for(var i=0; i<arr.length;i++){
    if(arr1.indexOf(arr[i])==-1){
    arr1.push(arr[i]);
    }
    }
    }
    return arr1;
    }
    var myArr1 = noRepeat1(arr)
    console.log(myArr1)
    console.groupEnd()
    
    // 方法三:先排序后然后再相邻比较去重
    console.group('先利用sort排序,再判断相邻元素去重:')
    function order(value1,value2){
    return value1-value2
    }
    function noRepeat2(arr){
    arr.sort(order);
    var arr1 = [arr[0]];
    for(var i=1;i<arr.length;i++){
    if(arr[i]!==arr1[arr1.length-1]){
    arr1.push(arr[i])
    }
    }
    return arr1
    }
    var myArr2 = noRepeat2(arr)
    console.log(myArr2)
    console.groupEnd()
    
    console.group('1.创建一个新的数组存放结果 2.创建一个空对象')
    Array.prototype.unique=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'];
    console.log(arr.unique())
    console.groupEnd()
  • 相关阅读:
    【CodeForces】835D Palindromic characteristics
    【BZOJ】2006: [NOI2010]超级钢琴
    【比赛】STSRM 09
    【比赛】洛谷夏令营NOIP模拟赛
    【BZOJ】4147: [AMPPZ2014]Euclidean Nim
    【BZOJ】3895: 取石子
    【胡策08】解题报告
    【codevs】3196 黄金宝藏
    【BZOJ】1443: [JSOI2009]游戏Game
    【BZOJ】3105: [cqoi2013]新Nim游戏
  • 原文地址:https://www.cnblogs.com/lzq035/p/7930606.html
Copyright © 2011-2022 走看看