数组去重 / 字符串去除重复字母

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

  -----来自千锋逆战班的一个小白

猜你喜欢

转载自www.cnblogs.com/hwy6/p/12549774.html