数组的深复制扁平化排序及去重相关方法

Posted alex-song

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的深复制扁平化排序及去重相关方法相关的知识,希望对你有一定的参考价值。

     // 数组的深复制
        // 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);

 

以上是关于数组的深复制扁平化排序及去重相关方法的主要内容,如果未能解决你的问题,请参考以下文章

JS:数组扁平化、去重、排序

js算法初窥03(简单搜索及去重算法)

JavaScript数组扁平化数组去重常见方法

前端技能树,面试复习第 53 天—— 手写代码:数据处理 | 排序 | 扁平 | 去重 | 解析 | 分隔

javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法

Js数组操作