数组去重的方式

 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));
上一篇:Flink基础(132):FLINK-SQL语法 (26) DQL(18) OPERATIONS(15)Deduplication 去重


下一篇:某SPI设备驱动引起的开关机压力测试死机问题一例