如何实现一个map函数?

前端人

共 1942字,需浏览 4分钟

 ·

2021-07-01 03:04

实现思路

map 迭代方法接收两个参数:

  • 对每一项执行的函数
    • 数组项的值
    • 数组项的下标
    • 数组对象本身
    • 指定 this 的作用域对象 map 方法返回每次函数调用结果组成的数组。
    • 该函数接收三个参数:

具体实现

Array.prototype.newMap = function(fn,context){
    if (typeof fn !== "function") {
      throw new TypeError(`${fn} is not a function`);
    }
    const newArr = [];
    for(var i = 0;i < this.length;i++){
      newArr.push(fn.call(context,this[i],i,this,context));
    }
    return newArr;
}

具体使用

凑字数

["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});
["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});
["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});
["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});
["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});
["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});
["鬼鬼""刘亦菲""周星驰"].newMap((userName) => {
    console.log(userName)
});


说明

本专栏总共汇总了150道题,每道题目答案没有多余扯皮的部分,就是单纯的答案。

关注公众号,每天一到面试题,为下次跳槽准备,人人都能冲击30k+,点击关注【鬼哥】当前进度【#015题】,如果你能点赞分享、鬼哥骑自行车也是开心的

浏览 56
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报