数组去重的七种方法(初级)

101 阅读1分钟
// 1.indexof 方法
        function unique1() {
            var arr = [1, 2, 3, 1, 2, 4, 5, 6];
            var res = [];
            for (let i = 0; i < arr.length; i++) {
                if (res.indexOf(arr[i]) == -1) {
                    res.push(arr[i]);
                }
            }
        }
// 2.indexof 第一次出现元素的下标是否和元素现在的位置相等,如果不等则说明该元素是重复元素
        function unique2() {
            var arr = [1, 2, 3, 1, 2, 4, 5, 6];
            var res = Array.prototype.filter.call(arr1, function (item, index) {
                return arr1.indexOf(item) === index;
            })
            // console.log(res1);
        }
// 3.用排序法,如果相邻元素相同就去除
        function unique3() {
            var arr = [1, 2, 3, 1, 2, 4, 5, 6];
            var res = [];
            arr = arr.sort();
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] !== arr[i + 1]) {
                    res.push(arr[i]);
                }
            }
            console.log(res);
        }
//4.Set与Array.from()可以将数据变为数组类型
        function unique4() {
            var arr = [1, 2, 3, 1, 2, 4, 5, 6];
            return Array.from(new Set(arr));
        }

//5.Set与结构赋值
        function unique5(){
            var arr = [1, 2, 3, 1, 2, 4, 5, 6];
            return [... new Set(arr)];
        }
 // 6.includes:判断数组内是否包含一个数,如果包含则返回ture 否则返回false
        function unique6(){
            var arr = [1, 2, 3, 1, 2, 4, 5, 6];
            var res = [];
            for(let i =0;i<arr.length;i++){
                if(!res.includes(arr[i]))
                    res.push(arr[i]);
            }
            console.log(res);
        }
//7.使用lodash的_uniq
var a =[1, 2, 1, 5, 1, 9] 
utils._uniq(a) // [1, 2, 5, 9]