數組forEach和Map實現原理(Array.prototype.forEach/myMap)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>數組forEach和Map實現原理</title>
</head>
<body>

</body>
</html>
<script type="text/javascript">

    var ary=[1,2,"哈哈","楊洋"];
    ary.forEach(function(item,index,arr) {},ary);

    Array.prototype.myForEach=function (fn,obj) {
        for(var i=0;i<this.length;i++){
            if(typeof obj=="undefined"){
                //obj沒有傳
                fn(this[i],i,this);
            }else {
                fn.call(obj,this[i],i,this);
            }
        }
    };
    Array.prototype.myMap=function (fn,obj) {
        var arr=[];
        for(var i=0;i<this.length;i++){
            if(typeof obj=="undefined"){
                arr.push(fn(this[i],i,this));
            }else {
                arr.push(fn.call(obj,this[i],i,this));
            }
        }
        return arr;
    };
    console.log(ary.myMap(function (item, index, arr) {
        return 1
    }, ary));
</script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章