整理数组去重的几种常用方法

2019-07-12  本文已影响0人  EverglowLyu

类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数

<script type="text/javascript">
    let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
    let set = new Set(array);
    console.log(set); // => Set {1, 2, 3, 4, 5}
</script>

ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node List,以及ES6中新增的Set和Map等可遍历对象

<script type="text/javascript">
    let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));
    console.log(array); // => [1, 2, 3, 4]
</script>

双for循环去重

<script type="text/javascript">
    var ary = [1, 3, 2, 3, 2, 3, 1, 2, 2, 3, 1, 1, 1];
            for (var i = 0; i < ary.length; i++) {
                var cur = ary[i];
                for (var j = i + 1; j < ary.length; j++) {
                    if (cur === ary[j]) {
                        ary.splice(j, 1);
                        j--;
                    }
                }
            }
    console.log(ary); // => [1, 3, 2]
</script>

双for循环去重,if{}else{}写法

<script type="text/javascript">
        var ary = [1, 2, 3, 2, 3, 4, 4];
    for (var i = 0; i < ary.length; i++) {
        var cur = ary[i];
        for (var j = i + 1; j < ary.length;) {
            if (cur === ary[j]) {
                ary.splice(j, 1);
            } else {
                j++;
                }
        }
    }
    console.log(ary) // => [1, 2, 3, 4]
</script>

双for循环三元运算写法

<script type="text/javascript">
    var ary = [3, 4, 4, 5, 6, 5, 6, 6, 3, 3, 5];
    for (var i = 0; i < ary.length; i++) {
        var cur = ary[i];
        for (var j = i + 1; j < ary.length;) {
            cur === ary[j] ? ary.splice(j, 1) : j++;
        }
    }
    console.log(ary) // => [3, 4, 5, 6]
</script>
上一篇 下一篇

猜你喜欢

热点阅读