• 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
    
  • 相关阅读:
    [LeetCode] 26 Remove Duplicates from Sorted Array
    归并排序
    插入排序
    选择排序
    冒泡排序
    单链表排序
    如何实现单链表反转
    Linux基础——centos 跳过管理员密码进行登录(单用户模式、救援模式)
    response.sendRedirect()与request.getRequestDispatcher().forward()区别
    json-lib——JsonConfig详细使用说明
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/2144894.html
Copyright © 2020-2023  润新知