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以下不兼容,但是还是可以使用的
