代码改变世界

数组去重

2019-11-02 14:15  张海峰999  阅读(105)  评论(0编辑  收藏  举报

1.

双重循环,外层循环控制arr数组,内层循环新数组result , 如果arr当前元素等于result当前的元素等于就直接退出循环 , 当j == result.length, 就将arr当前的元素追加到result中

   // function uinque(arr) {

        //     //i从开始遍历arr , 同时创建空数组result(没有重复元素的数据)
        //     for (var i = 0, result = []; i < arr.length; i++) {
        //         //遍历result 从j开始
        //         for (var j = 0; j < result.length; j++) {
        //             //如果result中当前元素等于arr中
        //             if (result[j] == arr[i]) {
        //                 break; //遍历及结束,退出循环
        //             }
        //         }
        //         //如果j 等于result的length
        //         if (j == result.length) {
        //             //将arr中当前元素追加到result末尾
        //             result[result.length] = arr[i];
        //         }
        //     }
        //     return result;
        // }
        // console.log(uinque([111, 222, 3, 5, 88, 55, 55, 6, 6]));
 
 
2.
// function unique(arr) {
        //     // 从0开始遍历,并创建空的hash 和 result 数组
        //     for (var i = 0, hash = [], result = []; i < arr.length; i++) {
        //         // 如果hash中以arr当前元素为下标的元素 等于undefined
        //         if (hash[arr[i]] === undefined) {
        //             // 就将arr当前元素追加到
        //             result[result.length] = arr[i];
        //             hash[arr[i]] = true;
        //         }
        //     }
        //     return result;
        // }
        // var arr = [1, 2, 3, 3, 2, 1, 5, 6, 9, 8, 7, 4];
        // console.log(unique(arr))
 
3.
 // function unique(arr) {
        //     for (var i = 0; i < arr.length; i++) {
        //         for (var j = 0; j < arr.length; j++) {
        //             if (arr[i] == arr[j]) {
        //                 arr.splice(j, 1);
        //                 j --;
        //             }
        //         }
        //     }
        //     return arr;
        // }
        // var arr = [1, 2, 3, 5, 8, 9, 4, 5, 3, 5, 4];
        // console.log(unique(arr))
 
 
4.
  // function unique(arr) {
        //     var obj = {};
        //     for (var i = 0, result = []; i < arr.length; i++) {
        //         if (!obj[arr[i]]) {
        //             // result[result.length] = arr[i];
        //             result.push(arr[i]);
        //             obj[arr[i]] = 1;
        //         }
        //     }
        //     return result;
        // }
        // var arr = [1, 2, 3, 6, 5, 4, 5, 6, 1, 2, 3];
        // console.log(unique(arr));