• 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降序

  • 相关阅读:
    ubuntu16.04设置开机自启服务
    Flask架构管理及特点(重要)
    Django开发框架知识点
    Django进行数据迁移时,报错:(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1")
    Java 网络编程(二) 两类传输协议:TCP UDP
    Java 网络编程(一) 网络基础知识
    .NET开源项目
    手写ArrayList、LinkedList
    命令查看java的class字节码文件
    dubbo总结
  • 原文地址:https://www.cnblogs.com/wdxue/p/6853557.html
Copyright © 2020-2023  润新知