美文网首页
数组去重的方法

数组去重的方法

作者: 李丹linda | 来源:发表于2018-11-14 16:47 被阅读0次

方案一:定义新数组

  • 定义一个新数组,然后将原数组的元素与新数组一一比较,如果不同则放在新数组中。
    <script type="text/javascript">
        var arr = [1,1,3,5,6,2,6,2,2,3,4,5];

        function unique(array){
            var newArr = [];
            for(var i=0;i<array.length;i++){
                if(newArr.indexOf(array[i]) == -1){
                    newArr.push(array[i]);
                }
            }
            return newArr;
        }

        console.log(unique(arr));
    </script>

方案二:双层循环

  • 外层循环元素,内层循环比较值。
    <script type="text/javascript">
        var arr = [1,1,3,5,6,2,6,2,2,3,4,5];

        function unique(array){
            for(var i=0;i<array.length;i++){
                for(var j=i+1;j<array.length;j++){
                    if(array[j]===array[i]){
                        array.splice(j,1);
                        j--;
                    }
                }
            }
            return array;
        }

        console.log(unique(arr));
    </script>

方案三:排序

  • 将原数组进行排序,然后将元素与相邻元素进行比较,如果相同则删掉,如果不同则保留
    <script type="text/javascript">
        var arr = [1,1,3,5,6,2,6,2,2,3,4,5];

        function unique(array){
            array.sort();
            for(var i=0;i<array.length;i++){
                if(array[i]===array[i+1]){
                    array.splice(i,1);
                    i--;
                }
            }
            return array;
        }

        console.log(unique(arr));
    </script>

方案四:对象键值对

  • 利用对象属性存在的特性,如果没有该属性则存入新数组。
    <script type="text/javascript">
        var arr = [1,1,3,5,6,2,6,2,2,3,4,5];

        function unique(array){
            var obj = {};
            var newArr = [];
            for(var i=0;i<array.length;i++){
                if(!obj[array[i]]){
                    obj[array[i]] = 1;
                    newArr.push(array[i]);
                }
            }
            return newArr;
        }

        console.log(unique(arr));
    </script>

方案五:es6的Set

  • Set数据结构,它类似于数组,其成员的值都是唯一的。
    <script type="text/javascript">
        var arr = [1,1,3,5,6,2,6,2,2,3,4,5];

        console.log(new Set(arr));
    </script>

相关文章

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • 数组

    数组 数组常用方法 数组去重

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

  • 数组去重方法

  • 数组去重方法

    const array = [1, 2, 3, '1', true, 'true', 9, 1, true] 使用...

网友评论

      本文标题:数组去重的方法

      本文链接:https://www.haomeiwen.com/subject/jlllfqtx.html