数组去重的多种方式~~~

数组去重
  1. 冒泡法
 //数组去重
        //法1 冒泡法
        var arr = [20, 25, 88, 66, 90, 25, 88, 66];
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        // 得到从小到大的冒泡排序
        console.log(arr);
        //在判断相邻两个元素之间是否相等 如果不等 就添加到新数组中
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] != arr[i + 1]) {
                // 追加到新数组中 两种方式都可以
                // newArr[newArr.length] = arr[i];
                newArr.push(arr[i]);
            }
        }
        console.log(newArr);
  1. 开关思想
 //数组去重
        //法2 开关思想
        var arr = [20, 25, 88, 66, 90, 25, 88, 66];
        //声明一个新数组 存放去重后的元素
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            // 判断新数组中是否存在一样的元素 通过开关思想
            //提出假设 假设不在
            var buZai = true;
            for (var j = 0; j < newArr.length; j++) {
                // 推翻假设
                if (arr[i] == newArr[j]) {
                    buZai = false;
                    //存在一样的元素 结束循环
                    break;
                }
            }
            if (buZai) {
                // 追加到新数组的两种方式都可以
                // newArr[newArr.length] = arr[i];
                newArr.push(arr[i]);
            }
        }
        console.log(newArr);
  1. indexOf检测
 //数组去重
        //法3 indexOf检测
        var arr = [20, 25, 88, 66, 90, 25, 88, 66];
        //声明一个新数组 存放去重后的元素
        var newArr = [];
        //遍历arr
        for (var i = 0; i < arr.length; i++) {
            // indexOf(元素) 如果存在会返回下标 如果不存在会返回-1
            if (newArr.indexOf(arr[i]) == -1) {
             // 追加到新数组的两种方式都可以
            // newArr[newArr.length] = arr[i];
                newArr.push(arr[i])
            }
        }
        console.log(newArr);
  1. 对象法
 //数组去重
        //法3 indexOf检测
        var arr = [20, 25, 88, 66, 90, 25, 88, 66];
        //声明一个新数组 存放去重后的元素
        var newArr = [];
        //声明一个空对象 用来检测元素是否重复
        var obj = {};
        //遍历arr
        for (var i = 0; i < arr.length; i++) {
            if (obj[arr[i]] == undefined) {
             // 追加到新数组的两种方式都可以
             // newArr[newArr.length] = arr[i];
                newArr.push(arr[i]);
                obj[arr[i]] = 1;
            }
        }
        console.log(newArr);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值