手写数组的map方法

一、写在前面

  数组的map方法,其中需要传入两个参数,第一个是一个回调函数,第二个是一个回调函数的this指向的值。

二、手写

  在手写map方法时,我们需要注意如下问题。

    1、回调函数必须是一个函数

    2、调用该方法的对象必须是数组。

    3、如果数组的大小为0,则直接返回空数组

Array.prototype.myMap = function (callback, thisArg) {
    let length = this.length;
    let res = [];
    if (!Array.isArray(this)) throw new TypeError("this is not an array")
    if (typeof callback !== "function") throw new TypeError(callback + "is not a function")
    if (length === 0) {
        return res
    }
    for (let i = 0; i < length; i++) {
        res[i] = callback.call(thisArg, this[i], i, this)
    }
    return res
}

 

posted @ 2022-10-26 16:16  田心夂  阅读(63)  评论(0)    收藏  举报