zoukankan      html  css  js  c++  java
  • javascript String.indexOf实现

    群里abcd提出问题,现在有以下三个实现,欢迎大家参与(注意,为了兼容IE6,不能使用str[i],要用str.charAt(i);不能使用slice,replace等原生函数):

    GrayZhang的实现

    
    String.prototype.substring = function(start, length) {
        var array = [];
        for (var i = start; i < start + length; i++) {
            array.push(this.charAt(i));
        }
        return array.join();
    };
    String.prototype.indexOf = function(s) {
        for (var i = 0; i < this.length - s.length; i++) {
            if (this.charAt(i) === s.charAt(0) &&
                this.substring(i, s.length) === s) {
                return i;
            }
        }
        return -1;
    };
    

    我的实现:

    //by 司徒正美 2011.8.18
    String.prototype.indexOf = function(sub){
            var a = sub.charAt(0),an = sub.length,n = this.length;
            if(n == an){
              return this == sub ? 0 : -1
            }
            if(n < an){
              return -1
            }
            loop:
              for(var i=0;i < n;i++){
              if(this.charAt(i) == a){
                for(var j=1;j < an;j++){
                  if(this.charAt(j+i) != sub.charAt(j)){
                    continue loop
                  }
                }
                return i
              }
            }
            return -1;
          }
    
           var a = "aabbccb";
          console.log(a.indexOf("bbccb"))//2
          console.log("Blue Whale".indexOf("Blue") )   // returns 0
          console.log("Blue Whale".indexOf("Blute"))   // returns -1
    
  • 相关阅读:
    实体类实现序列化
    异常处理
    Springboot的模块化使用
    Springboot的开始
    RxJava用法
    okhttp的Post方式
    OKhttp使用
    soundPool声音池
    ScheduledExecutor定时器
    timer定时器
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/2144894.html
Copyright © 2011-2022 走看看