你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

面试题手写js--数组去重

2021-12-2 23:20:14

数组去重四种方法展现:

<!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>
        // 数组去重方法1
        function unique1(arr) {
            var res = arr.filter(function (item, index, array) {
                return array.indexOf(item) === index
            })
            return res
        }

        console.log(unique1([1,2,3,2,1,3,4,5]));

    </script>

    <script>
        // 方法2
        function unique2(arr){
            let res=[...new Set(arr)]
            return res;
        }
        console.log(unique2([1,2,3,2,1,3,4,5]));

    </script>

    <script>
        // 方法3
        function unique3(arr){
            arr.sort((a,b)=>a-b);
            // console.log(arr);
            for(let i=0;i<arr.length-1;i++){
                if(arr[i]==arr[i+1]){
                    arr[i+1]=null;
                }
            }

            return arr.filter((element=>{
                return element!=null;
            }))

        }
        console.log(unique3([1,2,3,2,1,3,4,5]));

    </script>

    <script>
        // 方法4
        function unique4(arr){
            arr.sort((a,b)=>a-b);
            for(let i=0;i<arr.length-1;i++){
                if(arr[i]==arr[i+1]){
                    arr.splice(i,1);
                    i--;
                }
            }
            return arr;
        }
        console.log(unique4([1,2,3,2,1,3,4,5]));
        
    </script>
</body>

</html>