ES6的newSet(...arr)
一、简单的去重方法
//新建一个数组,遍历传入数组,值不在新数组就push进该数组中
function uniq(arr){
var temp = [ ];
for(var i = 0; i < arr.length; i++){
if(temp.indexOf(arr[i]) == -1){
temp.push(arry[i])
}
}
return temp
}
二、优化遍历数组法
//将数组中无重复的最右一值放入新数组
function uniq(arr){
var temp =[]
var index =[]
var l =arr.length
for(var i = 0 ;i<l ;i++){
for(var j = i+1 ;j<l ;j++){
if(arr[i] === arr[j]){
i++
j = i
}
}
temp.push(arr[i])
index.push(i)
}
return temp
}
三、数组下标法
//还是得调用“indexOf”性能跟方法1差不多,
// 实现思路:如果当前数组的第i项在当前数组中第一次出现的位置不是i
//那么表示第i项是重复的,忽略掉。否则存入结果数组。
function uniq(array){
var temp = [];
for(var i = 0; i < array.length; i++) {
//如果当前数组的第i项在当前数组中第一次出现的位置是i,才存入数组;否则代表是重复的
if(array.indexOf(array[i]) == i){
temp.push(array[i])
}
}
return temp;
}