题解 | #Array.map#

Array.map

https://www.nowcoder.com/practice/8300c998180c4ebbbd2a5aaeb7fbc77c

Array.prototype._map = function (Fn) {
    const that = this; // 传入的数组
    const ansArr = []; // 新建一个存储数组
  // 使用 forEach 进行遍历,因为 Fn 会传三个属性 值:item,索引:index,原数组:element,不能使用forof
    that.forEach((item,index,element)=>{
	  // 传入参数并且进行 Fn 操作,将每次返回的结果赋值给 resElement;
        const resElement = Fn(item,index,element);
        ansArr.push(resElement); // push 进数组
    })
    return ansArr;
}

// 定义一个 Fn
function fn(item) {
    return item * 2
}
// 定义一个数组
const arr = [1, 2];
// 正常 map 返回的结果
const testArr = arr.map(item => {
    return item * 2
})
console.log(testArr); // [2,4]
// 模拟 _map 返回的结果
console.log(arr._map(fn)); //[2,4]

全部评论

相关推荐

牛客154160166号:9月底还给我发短信,好奇怪,我24届的
点赞 评论 收藏
分享
10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务