数组加排序

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 2 for + splice删除 遇见重复的选项
        function norepeat(arr){
            for(var i=0;i<arr.length;i++){
                for(var j=i+1;j<arr.length;){
                    if(arr[i] == arr[j]){
                        arr.splice(j,1);
                        j--;
                    }
                    j++;
                }
            }
            return arr;
        }
        var arr2=[11,6,4,4,5]
        var arr1=norepeat(arr2);
        console.log(arr1)
    </script>
    <script>
    //   单循环 + indexof 判断每项是否存在 否就推入新数组  是否为-1再进行插入
    function unique4(arr){
        var newArr= [arr[0]]
        for(var i=1;i<arr.length;i++){
            if(newArr.indexOf(arr[i]) === -1){
                newArr.push(arr[i])
            }
        }
        return newArr
    }
    console.log(unique4([1,1,2,3,3,4,5]))
    </script>
    <script>
    //   sort 排序后循环数组 + 相邻元素比较  比较每一项 相同删除,同时不增加i
     function unique(arr){
         var arr2=arr.sort();
         for(var i=1;i<arr2.length;){
             if(arr2[i] === arr2[i-1]){
                 arr2.splice(i,1)
             }else{
                 i++
             }
         }
         return arr2
     }
    console.log( unique([1,1,1,3,4,5]))
    </script>
    <script>
    // 判断对象属性是否存在 + 新数组
    // 没有属性就存入新数组
    function unique3(arr){
        var obj={}
        var newArr=[]
        for(let i=0;i<arr.length;i++){
            if(!obj[arr[i]]){
                obj[arr[i]] = 1
                newArr.push(arr[i])
            }
        }
        return newArr
    }
    console.log(unique([1,1,3,3,4]))
    </script>
    <script>
        // set 新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值
        const unique2=arr=>{
            return [...new Set(arr)]
        }
        console.log(unique2([1,1,1,3,4,4]))
    </script>
    <script>
        // indexof检测当前字符索引,不存在返回-1
        // split分离数组
        let url = 'http://www.baidu?wd=js&name=rose'
        function queryUrlParameter(url){
            const obj={}
            if(url.indexOf('?') < 0 ) return obj
            url= url.split('?')[1]
            urlArr=url.split('&')
            urlArr.forEach(function(item){
                let newArr = item.split('=')
                obj[newArr[0]] = newArr[1]
            })
            return obj
        }
        console.log(queryUrlParameter(url))
    </script>
    <script>
       let url1 = 'http://www.baidu?wd=js&name=ccfont'
        function queryUrlParameter1(url1){
            let reg=/([^?&=]+)=([^?&=]+)/g
            let obj={}
            url1.replace(reg,function(){
                obj[arguments[1]]=arguments[2]
            })
            return obj
        }
        console.log('正则',queryUrlParameter1(url1))
    </script>
    <script>
        function unique(arr){
            return arr.reduce((prev,cur)=>prev.includes(cur)?prev:[...prev,cur],[]);
        }
        var arr=[1,1,2,3,4,2]
        console.log(unique(arr))
    </script>
</body>
</html>

 

   var arr=[1,5,3,1,2,67,8]
        function quick(arr){
            if(arr.length <= 1){
                return arr;
            }
            var contentIndex = Math.floor(arr.length / 2);
            var contentValue = arr.splice(contentIndex,1)[0];
            var leftArr = [];
            var rightArr = [];
            for(let i = 0;i<arr.length;i++){
                let item = arr[i];
                item > contentValue ? rightArr.push(item): leftArr.push(item);
            }
            return quick(leftArr).concat(contentValue,quick(rightArr));
        }
        arr= quick(arr);
        console.log(arr)

 

posted @ 2022-04-27 00:11  cc-front  阅读(18)  评论(0编辑  收藏  举报