这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了。

昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法。

对于想进大公司的童鞋,我想多说两句,基础知识真的很关键。平时在工作中也深刻体会到,没有扎实的基础知识,简单问题容易复杂化。

因为存在indexOf的方法,所以自定义方法写成indexof,方便对比。

对于Array.indexof() 方法的实现,主要考察的就是原型继承的知识。

通过Array.prototype.indexof = function(){}就可以给 Array 添加一个方法,实际工作中不推荐这样做。

剩下的就是数组元素匹配的问题,就不多说了,虽然不难,但是做的过程中也遇到了不大不小的问题。

最终代码如下

Array.prototype.indexof = function(searchElement, fromIndex) {

        var len = this.length;

        // 首先判断 fromIndex 是否合法
        if (fromIndex == null) {
            fromIndex = 0;
        }
        if (fromIndex < 0) {
            fromIndex = len - 1;
        }

        // 循环判断 searchElement 是否与数组内元素相等
        for (var i = fromIndex; i < len; i++) {
            // 如果相等则返回当前索引值
            if (searchElement === this[i]) {
                return i;
            }
        }

        return -1
}
View Code

相关文章:

  • 2022-01-17
  • 2022-01-01
  • 2021-12-03
  • 2021-07-25
  • 2022-12-23
  • 2022-02-24
  • 2022-12-23
猜你喜欢
  • 2021-08-10
  • 2021-06-23
  • 2021-10-09
  • 2022-12-23
  • 2022-12-23
  • 2022-01-19
相关资源
相似解决方案