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

var arr = [1, 1, 2, 3, 4, 4, 2, 1, 3, 5]

//方法1 遍历

            function norepeat(arr){

                for(var i=0;i<arr.length;i++){

                    for(var j=i+1;j<arr.length;j++){

                        if(arr[i]==arr[j]){

                            arr.splice(j,1);

                            j--;

                        }

                    }

                }

                return arr

            }

            //方法2:把数组看成一个对象去重

            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;//返回新数组的值

            }

            //方法3:使用sort()将数字按照字符串排序顺序,按照ASCII值排序

            arr.sort();

            for (var i = 0; i < arr.length - 1; i++) {

                if (arr[i] == arr[i + 1]) {

                    arr.splice(i + 1, 1);

                    i--;

                }

            }

            //方法4:indexOf属性来判断

            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;

            }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。