js去重

165 阅读1分钟

1.设定一个有重复的字符串;

          var str = "aaaammmxxxilspppsiiisnajj0000333aaaxx";
          //3.设置一个空对象,用来存放统计;
          var obj = {};
          //2.遍历字符串的每一项,拿到所有值;
          for(var i=0;i<str.length;i++){
              //4.判断对象里的每一个值有没有重复的
              if(obj[str[i]]){
                  //5.有重复一次以上的,给自增++;
                  obj[str[i]]++;
              }else{//6.否则就 = 1;
                  obj[str[i]] = 1 ;
              }
          }
          //7.打印对象,检测是否正确;
          console.log(obj);

          //9.设置一空的字符串,用来存放所有的key
          var s = "";
          //8.遍历对象的所有下标代表的key;
          for(var i in obj){
              //10.用字符串的拼接,加上所有的key;
              s += i;
          }
          console.log(s);

1.定义一个有重复数值项的数组;

      var arr = [1,1,5,5,5,9,9,3,3,5,7,7,8];
     //2。编写一个函数;
      function norepeat(arr){
          //3.给设置一个空的数组,用来放比较后不同的值;
          var newArr = [];
          //4.先遍历定义的数组的所有项;
          for(var i=0;i<arr.length;i++){
             //7.定一个变量代表每个值;
              var val = arr[i];
              //10。现在不知道有没有重复的数字,设置一个变量将数组设置没有重复的数值;
              var isno = false;
              //6.然后遍历定义空数组的所有项
             for(var j=0;j<newArr.length;j++){
                 //8.判断定义的arr[i]的值和新数组的值是否相等;
                if(val===newArr[j]){
                    //11.
                    isno = true;
                    //9.如果相等。就跳出本次循环;
                    break;
                }
             }
             //12.
             if(!isno){
                 //13.把判断出arr[i]不同值新增到新数组中;
                 newArr.push(val);
             }
          }
          //5.对应是第4步,给设置返回值;
          return newArr;
      }

      console.log(norepeat(arr));