代码实现indexOf | 刷题打卡

396 阅读1分钟

本文正在参与掘金团队号上线活动,点击 查看大厂春招职位

一、题目描述:

用最简洁代码实现indexOf方法

二、思路分析:

数组和字符串都有indexOf方法,找到一个给定元素的第一个索引,如果不存在,则返回-1

  • searchValue:要被查找的字符串值。
  • fromIndex 可选:数字表示开始查找的位置。可以是任意整数,默认值为 0。fromIndex 的值小于 0,等同于为空情况; fromIndex 的值大于或等于 str.length ,那么结果会直接返回 -1 。

三、AC 代码:

    // 最简洁的是啥样的,呜呜呜,我哭了
      function indexOf(searchValue, fromIndex = 0) {
        if (this.length < 1 || fromIndex > searchValue.length) {
          return -1;
        }
        if (!searchValue) {
          return 0;
        }
        fromIndex = fromIndex <= 0 ? 0 : fromIndex;
        for (let i = fromIndex; i < this.length; i++) {
          if (this[i] == searchValue) return i;
        }
        return -1;
      }
      Array.prototype.myIndexOf = indexOf;
      String.prototype.myIndexOf = indexOf;
      console.log([1, 2, 3].myIndexOf(2));
      console.log('123'.myIndexOf(2));
      

四、总结:

试着参加掘金活动打个卡;