ArrUnique.js //---------------------------------数组去重方法-----------------------------------------////1.使用indexOf()去重思路: //创建一个新的空数组,用来存放去重后的新数组. //利用for循环循环遍历需要
//---------------------------------数组去重方法-----------------------------------------// //1.使用indexOf()去重思路: //创建一个新的空数组,用来存放去重后的新数组. //利用for循环循环遍历需要去重的数组. //利用indexOf()方法查询遍历出的数组在新数组中是否出现,如果出现:则继续遍历数组,如未出现: //则利用push方法添加到新数组中.原数组循环遍历完成后,组建一个已经去除重复的新数组. var arr = [1,3,4,5,6,7,4,3,2,4,5,6,7,3,2]; //js代码: function unique1(arr){ var newArr = []; for (var i = 0; i < arr.length; i++) { if (newArr.indexOf(arr[i]) == -1 )newArr.push(arr[i]); } return newArr; } //调用方法 unique1(arr); 1.1 indexOf()去重第2个写法, function unique3(arr){ return arr.filter(function(val,index,a){ return index === a.indexOf(val); }) } 2.原生比较法: // 思路:两次便利数组,获取没重复的最右一值放入新数组。 //(检测到有重复值时终止当前循环同时进入顶层循环的下一轮判断) function unique2(array){ var r = []; for(var i = 0, l = array.length; i < l; i++) { for(var j = i + 1; j < l; j++) if (array[i] === array[j]) j = ++i; r.push(array[i]); } return r; } //调用方法 unique2(arr); //注:以上是常用的两种数组去重方法,虽然第一种ie8以下不兼容,但是还是可以使用的