1. 數組去重
基本思路 indexOf():
建立一個新的數組,將原始數組中的數值向新的數組中寫入。如果這個數值不存在於新的數組中就執行寫入,如果已經存在就不寫入。
// 數組中存儲重復的數值,去除重復數值之后,應該是 [1,2,3,4,5] var arr = [1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,5,5,5,5,5]
// 建立一個空數組,來存儲原始數組中不重復的數據 var newArr = []; // 循環遍歷,獲取原始數組arr中的所有數值 arr.forEach(function(v){
// 在新數組中,查找當前獲取的原始數組的數值 newArr.indexOf(v)
//執行結果如果是 -1,證明在新數組中,沒有這個原始數組的數據 if(newArr.indexOf(v) === -1){ // 將這個數據,寫入到新數組中 newArr.push(v) } }) console.log( newArr );
2. 字符串去除重復字母
原理和數組去重相同,只是字符串不能使用forEach()循環。
建立一個新的字符串,將原始字符串中的數值向新的字符串中寫入。如果這個數值不存在於新的字符串中就執行寫入,如果已經存在就不寫入。
var str = 'aaabbbbcccddddeeeeefffff'; // 建立一個新的字符串,來存儲原來字符串中不重復的數據 var newStr = ''; // 通過for...in來循環遍歷,字符串(不能用forEach) // key存儲的是每個字母的索引下標 for(var key in str){ // str[key] 是當前循環獲取的索引下標,對應的字符串中的字母 // newStr.indexOf(str[key]) 判斷 新字符串中,是否有當前這個字母 // 如果結果是 -1 證明新字符串中沒有這個字母 if(newStr.indexOf(str[key]) === -1){ // 執行字符串拼接操作,將這個字母拼接入新的字符串中 newStr += str[key]; } } console.log(newStr);
-----來自千鋒逆戰班的一個小白