Skip to content

如何实现 Array.prototype.map? #25

Open

Description

@CodeRookie262

map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。点击查看具体

Activity

  1. CodeRookie262 commented on Jan 20, 2021

    @CodeRookie262
    OwnerAuthor

    map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新数组。 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引则不会被调用。

    Array.prototype.custMap = function(callback){
        if(typeof callback !== 'function'){
            return console.error('custMap 的参数必须是一个参数');
        } 
        var len = this.length;
        var ret = Array(len);
        for(var i = 0;i < len;i++){
            // 判断数组当前位置是否为 empty,如果是 empty 则跳过此轮
            if(!this.hasOwnProperty(i)){
                continue;
            }else{
                ret[i] = callback(this[i],i,this);
            }
        }
        return ret;
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions