zoukankan      html  css  js  c++  java
  • 数组的深复制、扁平化、排序及去重相关方法

         // 数组的深复制
            // concat
            var arr = [1, 2, 3, 4, 5];
            var arr1 = arr.concat();
            arr[0] = 100;
            console.log(arr)
            console.log(arr1)
    
            // slice
            var arr = [1, 2, 3, 4, 5];
            var arr1 = arr.slice(0);
            arr[0] = 100;
            console.log(arr)
            console.log(arr1)
    
            //ES6扩展运算符
            var arr = [1, 2, 3, 4, 5];
            var arr1 = [...arr]
            arr[0] = 100;
            console.log(arr)
            console.log(arr1)
    
            //for循环
            var arr = [1, [10,20], 3, 4, 5];
            var arr1 = []
            for(var i=0;i<arr.length;i++){
                arr1.push(arr[i])
            }
            arr[0]=100;
            console.log(arr)
            console.log(arr1)
            
            // JSON转换
            var arr = [1, [10,20], 3, 4, 5];
            var arr1=JSON.parse(JSON.stringify(arr));
            arr[1][1]=100;
            console.log(arr)
            console.log(arr1)
    
            // 数组扁平化
            var arr=[1,2,3,[10,20,[100,200,300]]]
            var arr1=[]
            function arrFlat(arr){
                for(var i=0;i<arr.length;i++){
                    if(!arr[i].length){
                        arr1.push(arr[i])
                    }else{
                        arrFlat(arr[i])
                    }
                }
            }
            arrFlat(arr)
            console.log(arr);
            console.log(arr1);
    
            // 数组去重--indexOf
            var arr=[1,2,3,4,3,2,1,5,6];
            var arr1=[]
            for(var i=0;i<arr.length;i++){
                if(arr1.indexOf(arr[i])<0){
                    arr1.push(arr[i]);
                }
            }
            console.log(arr);
            console.log(arr1);
            
            // 双重循环
            var arr=[1,2,3,4,3,2,1,5,6];
            var arr1=[];
            for(var i=0;i<arr.length;i++){
                var bool=true;
                for(var j=0;j<arr1.length;j++){
                    if(arr1[j]==arr[i]){
                        bool=false;
                    }
                }
                if(bool){
                    arr1.push(arr[i]);
                }
            }
            console.log(arr)
            console.log(arr1)
            
            // 使用deleta实现
            var arr=[1,2,3,4,3,2,1,5,6];
            var arr1=[];
            for(var i=0;i<arr.length;i++){
                if(arr.indexOf(arr[i],i+1)>-1){
                    delete arr[i]
                }
            }
            for(var item in arr){
                arr1.push(arr[item])
            }
            console.log(arr)
            console.log(arr1)
            
            // 数组排序sort(a-b为小到大,反之大到小)
            var arr=[1,2,6,13,4,3,11,22,5];
            arr.sort((a,b)=>{
                return a-b
            })
            console.log(arr);
            
            // 选择排序
            var arr=[1,2,10,6,12,33,5,3,4];
            for(var i=0;i<arr.length;i++){
                var checkVal=''
                for(var j=i+1;j<arr.length;j++){
                    if(arr[i]>arr[j]){
                        checkVal=arr[i];
                        arr[i]=arr[j];
                        arr[j]=checkVal
                    }
                }
            }
            console.log(arr);
            
            // 冒泡排序
            var arr=[15,2,1,6,12,33,5,3,4];
            for(var i=0;i<arr.length;i++){
                var checkVal='';
                for(var j=0;j<arr.length;j++){
                    if(arr[j]>arr[j+1]){
                    checkVal=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=checkVal
                }
                }
            }
            console.log(arr);
  • 相关阅读:
    360删除、修改注册表问题
    朗姆达表达式类似IN查询条件
    SQL 分组排序、CASE...WHEN...、是否为空 查询
    Excel 复制Sql查询结果错位
    redis实现购物车秒杀原理
    sphinx的使用
    linux安装
    linux和windows的区别
    Yii2.0实现语言包切换功能
    Linux的7个级别
  • 原文地址:https://www.cnblogs.com/Alex-Song/p/12981319.html
Copyright © 2011-2022 走看看