1.冒泡法
1.1 先對(duì)數(shù)組排序arr
1.2 聲明新數(shù)組存儲(chǔ)去重后的數(shù)組newArr
1.3 遍歷arr,檢查每一個(gè)元素與相鄰的元素是否相等眶掌。相等挡育,說(shuō)明重復(fù)。 不等畏线,沒(méi)有重復(fù)就添加
//1.1 先對(duì)數(shù)組排序arr
for(var i = 0;i<arr.length-1;i++){
for(var j = 0;j<arr.length-1-i;j++){
if(arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
//1.2 聲明新數(shù)組存儲(chǔ)去重后的數(shù)組newArr
var newArr = [];
//1.3 遍歷arr静盅,檢查每一個(gè)元素與相鄰的元素是否相等。相等,說(shuō)明重復(fù)蒿叠。 不等明垢,沒(méi)有重復(fù)就添加
for(var i = 0;i<arr.length;i++){
if(arr[i] != arr[i+1]){
newArr[newArr.length] = arr[i];
}
};
console.log(newArr);
2.開(kāi)關(guān)思想
1.聲明newArr存儲(chǔ)去重后的數(shù)組
2.遍歷arr,檢查arr[i]在不在
3.根據(jù)結(jié)果: 在:不添加 不在:添加
//1.聲明newArr存儲(chǔ)去重后的數(shù)組
var newArr = [];
// 遍歷arr市咽,檢查arr[i]在不在
for(var i = 0;i<arr.length;i++){
var buZai = true;
// b. 驗(yàn)證假設(shè)
// c. 根據(jù)開(kāi)關(guān)結(jié)果實(shí)現(xiàn)需求
for(var j = 0;j < newArr.length;j++){
if(arr[i] == newArr[j]){
buZai = false;
}
};
if(buZai){
//沒(méi)有重復(fù)
newArr[newArr.length] = arr[i];
}
};
3.indexOf方法
如果indexof檢查的結(jié)果為-1,說(shuō)明不在新的數(shù)組中
var arr = [20,66,88,99,100,55,66,88,20];
//聲明空數(shù)組存儲(chǔ)去重后的數(shù)組
var newArr = [];
//遍歷arr痊银,檢查在不在newArr中
for(var i = 0;i<arr.length;i++){
if(newArr.indexOf(arr[i]) == -1){//不在
newArr.push(arr[i]);
};
};
console.log(newArr);
4.對(duì)象法
//4.1 聲明空數(shù)組存儲(chǔ)去重后的數(shù)組 聲明空對(duì)象用于檢查元素是否重復(fù)
var newArr = [];
var obj = {};
//4.2 遍歷arr
for(var i = 0;i<arr.length;i++){
//如果這個(gè)對(duì)象以前沒(méi)有個(gè)屬性名(元素),沒(méi)有重復(fù)施绎。 有則重復(fù)
if(obj[arr[i]] == undefined){//沒(méi)有重復(fù)
newArr.push(arr[i]);//對(duì)這個(gè)屬性隨意賦值溯革,下一次是相同屬性就不會(huì)取出undefined
obj[arr[i]] = 1;
};
};
console.log(newArr);