<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数组去重</title>
</head>
<body>
<script>
// 2、数组去重方法(至少3种)
// var arr = [1,2,2,2,1,3,4,2,5];
// 方法一:
// 获取数组中的每一个元素
// for(var i=0;i<arr.length;i++){
// // console.log(arr[i]);
// // 获取当前元素后的每一个元素
// for(var j =i+1;j<arr.length;j++){
// // console.log("-------->"+arr[j]);
// // 判断两个元素的值是否相等
// if(arr[i]==arr[j]){
// // 如果相等则证明出现了重复的元素,则删除j对应的元素
// arr.splice(j,1);
// // 当删除了当前j所在的元素以后,后边的元素会自动补位
// // 此时将不会再比较这个元素,就需要再比较一次j所在的位置的元素
// // 使j自减
// j--;
// }
// }
// }
// console.log(arr);
// 方法二:
// indexOf:首先需要一个存结果的新数组,遍历数组每一项在新数组中找一下,找不到就添加,找得到就跳过,最后得到去重后的数组。
// var arr = [1,2,2,2,1,3,4,2,5];
// var arrTemp =[];
// // 如果arrTemp中找不到arr中的item,就把item加到arrTemp中
// arr.forEach(function(item,index){
// if(arrTemp.indexOf(item)==-1){
// arrTemp.push(item);
// }
// });
// console.log(arrTemp);
// 方法三:排序去重
// var arr = [1,2,2,2,1,3,4,2,5];
// var arrTemp = arr.sort(function(a,b){
// return a-b;
// })
// var quchong=[];
// arrTemp.forEach(function(item,index){
// if (item!==arrTemp[index-1]) {
// quchong.push(item);
// }
// });
// console.log(quchong);
// 方法四:通过对象来去重
// 利用对象的属性值不会重复的特性,遍历数组将每一项作为对象的属性添加进去,最后再将对象的属性通过 Object.keys(obj1) 变成数组最终达到去重的效果。
// var arr = [1,2,2,2,1,3,4,2,5];
// var arrObj = {};
// arr.forEach(function(item,index){
// arrObj[item] = item;
// });
// console.log('arrObj:'+arrObj);
// var arrTemp=Object.keys(arrObj);
// console.log('arrTemp:'+arrTemp) //但是得到的是字符串数组
// var arr2=arrTemp.map(item=>{
// return Number(item) //转成数字数组
// })
// console.log('arr2:'+arr2)
// 方法五:es6 的Set 方法
// var arr = [1,2,2,2,1,3,4,2,5];
// const unique=arr=>[...new Set(arr)]
// console.log("arr:"+unique(arr));
</script>
</body>
</html>
数组去重的几种方法
最新推荐文章于 2020-06-19 11:54:31 发布