zoukankan      html  css  js  c++  java
  • 实现一个字符串匹配算法,从字符串 H 中,查找 是否存在字符串 Y ,若是存在返回所在位置的索引,不存在返回 -1(不基于indexOf/includes方法)

    /**
    1、循环原始字符串的每一项,让每一项从当前位置向后截取 H.length 个字符,
    然后和 Y 进行比较,如果不一样,继续循环;如果一样返回当前索引即可
    **/
    function myIndexOf(Y) {
      let lenY = Y.length,
        lenH = H.length,
        res = -1;
      if (lenY > lenH) return res;
      for (let i = 0; i <= lenH - lenY; i++) {
        if (this.substr(i, lenY) === Y) {
          res = i;
          break;
        }
      }
      return res;
    }
    String.prototype.myIndexOf = myIndexOf;

    let H = 'fighting',
    Y = 'ht';
    console.log(H.myIndexOf(Y));
     
    /**
    2、正则处理
    **/
    function myIndexOf(Y) {
      // this:H
      let reg = new RegExp(Y),
        res = reg.exec(this);
      return res === null ? -1 : res.index;
    }
    String.prototype.myIndexOf = myIndexOf;
    let H = 'fighting',
       Y = 'ht';
    console.log(H.myIndexOf(Y));
  • 相关阅读:
    处理数据
    Vue--Vue常用指令及操作
    Vue--Vue实例
    ES6--解构赋值
    ES6--入门
    前端模块化开发
    Node.js--入门
    HTML5--canvas与svg的使用
    input整理
    移动端开发入门
  • 原文地址:https://www.cnblogs.com/HYTing/p/12612020.html
Copyright © 2011-2022 走看看