编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组


//第一种方法
 
var arr = [1, 1, 1, 2, 3, 4, 1, 3, 6, 7, 3, 5];  //声明一个含有重复值得数组
    function norepeat(arr) {//创建norepeat函数
        for (var i = 0; i < arr.length; i++) {//遍历数组
            for (var j = i + 1; j < arr.length; j++) {//i分别于i+1和后面的依次进行比较
                if (arr[i] == arr[j]) {//如果相等,删除j中的那个值
                    arr.splice(j, 1);
                    j--;  //防止第三个及以后的重复的忽略而没有进行比较
                }
            }
        }
        return arr;
    }
    console.log(norepeat(arr));
 
//第二种方法
 
var arr = [1, 1, 1, 2, 3, 4, 1, 3, 6, 7, 3, 5];
    arr.sort();
    for (var i = 0; i < arr.length - 1; i++) {
        if (arr[i] == arr[i + 1]) {
            arr.splice(i + 1, 1);
            i--;
        }
    }
    console.log(arr);
 
 //方法三:把数组看成一个对象去重
var arr = [1, 1, 1, 2, 3, 4, 1, 3, 6, 7, 3, 5];
    function norepeat(arr) {
        var obj = {};//声明一个空对象
        var newArr = [];//声明一个空数组,用来存放数组中去重后的值
        for (var i = 0; i < arr.length; i++) {//遍历数组
            if (obj[arr[i]] == undefined) {//如果对象中没有这个元素
                newArr.push(arr[i]);//空数组中加入这个元素
                obj[arr[i]] = 1;//对象这个元素赋值
            }
        }
        return newArr;//返回新数组的值
    }
    console.log(norepeat(arr));
 
//方法四:indexOf属性来判断

    var arr = [1, 1, 1, 2, 3, 4, 1, 3, 6, 7, 3, 5];
    var newArr = [];//声明一个空数组
    function norepeat(arr) {
        for (var i = 0; i < arr.length; i++) {//遍历数组
            if (newArr.indexOf(arr[i]) == -1) {//用indexOf判断,没有就加入arr[i]的值
                newArr.push(arr[i]);
            }
        }
        return newArr;
    }
    console.log(norepeat(arr));
 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM