在学习过程中发现两种基础的数组去重的方法,虽说是两种,其实只是把第一种方法的第二层for循环中改变了一下条件表达式和把递增改成递减。
方法一: 重复的元素在最后重复的位置显示
    var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
        // 创建标记变量
        var flag = true;
        // 后面元素与前面元素重复的话,
        // 前面重复元素不会添加到新数组中
        for (var j = i + 1; j < arr.length ; j++) {
            if (i == j) {=
                // 位置重复不进行判断
                // 直接进行下一个位置的判断
                continue;
            }
            //判断是否重复
            if (arr1[i] == arr1[j]) {
                // 重复了,把flag标记为false
                flag = false;
                // 已经判断重复了,无需再判断后续元素
                // 直接break,跳出这一层循环
                break;
            }
        }
        // flag未标记为false(即遍历后未发现此时的arr[i]
        // 是不与其他数组元素重复的
        if (flag) {
            // 添加不重复的数组元素
            newArr1[newArr1.length] = arr1[i];
        }
    }
    console.log(newArr1);
原数组为: [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
输出结果为: [2, 6, 1, 77, 52, 0, 25, 7]
方法二: 重复的元素在第一次重复的位置显示
    var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
    var newArr1 = [];
    for (var i = 0; i < arr1.length; i++) {
        // 创建标记变量
        var flag = true;
        // 后面元素与前面元素重复的话,
        //后面重复元素不会添加到新数组中
        for (var j = i + 1; 0 <= j ; j--) {
            if (i == j) {
                // 位置重复不进行判断
                // 直接进行下一个位置的判断
                continue;
            }
            //判断是否重复
            if (arr1[i] == arr1[j]) {
                // 重复了,把flag标记为false
                flag = false;
                // 已经判断重复了,无需再判断后续元素
                // 直接break,跳出这一层循环
                break;
            }
        }
        // flag未标记为false(即遍历后未发现此时的arr[i]是不与其他数组元素重复的
        if (flag) {
            // 添加不重复的数组元素
            newArr1[newArr1.length] = arr1[i];
        }
    }
    console.log(newArr1);
原数组为: [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
输出结果为: [2, 0, 6, 1, 77, 52, 25, 7]










