編寫函數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