zoukankan      html  css  js  c++  java
  • javascript之数组的6种去重方法

    去重

    var arr=[11,11,333,4,4,5,66,66,7];
    // 方法一:在新数组内判断不存在时加入
    var newarr1=[];
    function quchong1(){
    for(var i=0;i<arr.length;i++){
    if(newarr1.indexOf(arr[i])==-1){
    newarr1.push(arr[i])
    }
    }
    console.log(newarr1)
    }
    quchong1()
    // 方法二:前后数组比较,若相等,跳过该数
    var newarr2=[];
    function quchong2(){
    for(var i=0;i<arr.length;i++){
    for(var j=i+1;j<arr.length;j++){
    if(arr[i]==arr[j]){
    j=++i
    }
    }
    newarr2.push(arr[i])
    }
    return newarr2
    }
    quchong2()
    console.log(newarr2)
    // 方法三:es6 Set自动去除重复数据
    let newarray3 =[...new Set(arr)] ;
    console.log(newarray3);
    // 方法四
    var a = {}, newarr4 = []
    function quchong4() {
    for (var i = 0; i <arr.length; i++) {
    var arr1 = arr[i];
    var d = (typeof arr1) + arr1;
    if (a[d] === undefined) {
    newarr4.push(arr1);
    a[d] = 1;
    }
    }
     
    }
    quchong4();
    console.log(newarr4);
    // 方法五:自己与自己比较,若相等,删除该位置的数据
    var newarray5=arr;
    for (var i = 0; i < newarray5.length; i++) {
    for (var j = 0; j < newarray5.length; j++) {
    if(i!=j){
    if(newarray5[j] == newarray5[i]){
    newarray5.splice(i,1)
    }
    }
    }
    }
    console.log(newarray5)
    // 方法六:indexof每次只返回第一个元素的位置,
    var newarray6 = arr.filter(function (element, index, arr2) {
    return arr2.indexOf(element) === index;
    });
    console.log(newarray6)

    去空

    String.prototype.trim=function(){

            return this.replace(/(^s+)|(s+$)g,'')

    }

    str.trim()

    function trim(str){

           return str.replace(/(^s+)|(s+$)/g,'')

    }

    trim(str)

    原生数组排序

    function sort(arr){

         for(var i=0;i<arr.length;i++){

             for(var j=i;j<arr.length;j++){

                 if(arr[i]>arr[j]){

                       var max=arr[i];

                       arr[i]=arr[j];

                       arr[j]=max;

                }

            }

         }

    }

    sort([....])

    数组方法排序

    arr.sort(function(a,b){return a-b})

    注:

    a-b升序

    b-a降序

  • 相关阅读:
    (转)一次棘手的rootvg更换硬盘处理过程
    mysql:服务器错误代码
    (转)运行跟踪格式化程序
    (转)InnoDB存储引擎MVCC实现原理
    (转)漫谈JVM
    (转)mysql、innodb和加锁分析
    (转)DB2和 Oracle的并发控制(锁)比较
    (转)Mysql主从复制搭建及详解
    BigDecimal 、BigInteger
    Date、DateFormat、SimpleDateFormat、Calendar
  • 原文地址:https://www.cnblogs.com/wdxue/p/6853557.html
Copyright © 2011-2022 走看看