數組去重 / 字符串去除重復字母


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);

  -----來自千鋒逆戰班的一個小白


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM