一拙绊、
1.構建一個新的數(shù)組存放結果
2.for循環(huán)中每次從原數(shù)組中取出一個元素啥寇,用這個元素循環(huán)與結果數(shù)組對比
3.若結果數(shù)組中沒有該元素,則存到結果數(shù)組中
function unique(arr){
var res = [arr[0]];
for(var i = 1; i < arr.length; i++){
var repeat = false;
for(var j = 0; j < res.length; j++){
if(arr[i] == res[j]){
repeat = true;
break;
}
}
if(!repeat){
res.push(arr[i]);
}
}
return res;
}
二,
1.創(chuàng)建一個新的數(shù)組存放結果
2.創(chuàng)建一個空對象
3.for循環(huán)時曹货,每次取出一個元素與對象進行對比徘跪,如果這個元素不重復,則把它存放到結果數(shù)組中析砸,同時把這個元素的內容作為對象的一個屬性昔字,并賦值為1,存入到第2步建立的對象中首繁。
function unique(arr){
var rs =[];
var obj={};
for(var i=0;i<arr.length;i++){
if (!obj[arr[i]]) {
obj[arr[i]]=1;
rs.push(arr[i]);
}
}
return rs;
}
三作郭,
如果當前數(shù)組的第i項在當前數(shù)組中第一次出現(xiàn)的位置不是i,那么表示第i項是重復的弦疮,忽略掉夹攒。否則存入結果數(shù)組。
function unique3(array){
var n = [array[0]]; //結果數(shù)組
//從第二項開始遍歷
for(var i = 1; i < array.length; i++) {
//如果當前數(shù)組的第i項在當前數(shù)組中第一次出現(xiàn)的位置不是i胁塞,
//那么表示第i項是重復的咏尝,忽略掉。否則存入結果數(shù)組
if (array.indexOf(array[i]) == i) n.push(array[i]);
}
return n;
}
四闲先,
給傳入數(shù)組排序状土,排序后相同值相鄰无蜂,然后遍歷時新數(shù)組只加入不與前一值重復的值伺糠。
// 將相同的值相鄰,然后遍歷去除重復值
function unique4(array){
array.sort();
var re=[array[0]];
for(var i = 1; i < array.length; i++){
if( array[i] !== re[re.length-1]){
re.push(array[i]);
}
}
return re;
}