数组去重的方式

 var arr1 = [10, 8, 5, 6, 96, 54, 52, 10, 8, 5, 6, 5];

1.遍历数组

 function DeDuplication(arr) {
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[i] == arr[j]) {
                    i++;
                    j = i;
                }
            }
            newArr.push(arr[i]);
        }
       return newArr;
    }
console.log(DeDuplication(arr));

2.利用对象属性不能重复的性质

 function DeDuplication(arr) {
        var obj = {};
        var newarr = [];
        for (var i = 0; i < arr.length; i++) {
          // 将arr中的每一项值作为obj的属性名,属性值随便
            obj[arr[i]] = "111";
        }
        for (key in obj) {
            newarr.push(Number(key));
        }
        return Array.from(newarr);
    }
 
   console.log( DeDuplication(arr1));
3.  利用indexOf   indexOf()方法是获取指定元素的索引,(相同元素的第一个元素,从前往后的索引,如果有该元素,返回索引值,否则返回-1)
    function DeDuplication(arr) {
        var newarr = [];
        for (var j = 0; j < arr.length; j++) {
            // 判断newarr中有没有arr[j]这个元素,如果是-1,证明没有,所以需要向newarr中添加arr[j],如果有,则不等于-1,if里面的语句则不执行
            //这句判断换成 if(newarr.lastIndexOf(arr[j]==-1))也可以
            if (newarr.indexOf(arr[j]) == -1) {
                newarr.push(arr[j])
            }
        }
        return newarr;
    }
    console.log(DeDuplication(arr1));
4. Set里面的元素不能重复
 function DeDuplication(arr) {
        return Array.from(new Set(arr));
        // 或者可以用es6语法这样写,得到的结果相同     return [...new Set(arr)]
    }
   console.log(DeDuplication(arr1));

数组去重的方式

上一篇:《objective-c基础教程》学习笔记(九)—— Foundation框架介绍


下一篇:极角排序