如何实现一个map函数?

实现思路
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题】,如果你能点赞分享、鬼哥骑自行车也是开心的
评论
