zoukankan      html  css  js  c++  java
  • 自己实现String.prototype.trim方法

    今天呢 知乎看到一道题 说是网易面试题,要求自己写一个trim()方法,

    实现 var str = "   a   sd  "; 去掉字符串两端的空格。

    直接上码

      var str = "   a  sd  ";
      
      function trim (st) {
        // 先把字符串分割成数组
        var arr = st.split("");
        // 从前面删除空格
        for (let i = 0; i < arr.length; i++) {
          // 如果数组元素是空格则删除
          if (arr[i] === " ") {
            arr.shift();
            /*console.log(arr.length, i)*/
            // 如果当前元素的下一项不是空格退出循环
            if (arr[i+1] !== " ") {
              break;
            }
                   
          }
        }
        // 后前面删除空格
        for (let i = arr.length; i >= 0; i--) {
          // 如果数组元素是空格则删除
          if (arr[i-1] === " ") {
            arr.pop();
            // 如果当前元素的前一项不是空格退出循环
            if (arr[i-2] !== " ") {
              break;
            }
          }
        }
        arr = arr.join("");
        /*console.log(arr);*/
        return arr;
      }
      var a = trim(str);
      console.log(a); //a  sd//

    原理注释写的很清楚

    然后我写完后满心欢喜的看了下答案。。。。。结果人家就是一句正则而已

    上原答案

      var str = "   a  sd  ";
      String.prototype.trim = function () {
        return this.replace(/^[suFEFFxA0]+|[suFEFFxA0]+$/g, '');   
      };
      var b = str.trim();
      console.log(b);//a  sd//

    正则真的犀利 高效很多

  • 相关阅读:
    法院
    Spring Cloud常用组件
    PowerShell使用教程
    浅谈3DES加密解密
    SC win consul
    SB-Token-Jwt
    前端MVC Vue2学习总结
    spring-session-data-redis
    SpringBoot WS
    SpringBoot之使用Spring Session集群-redis
  • 原文地址:https://www.cnblogs.com/gr07/p/7867521.html
Copyright © 2011-2022 走看看