语法: array.map(function(currentValue,index,arr), thisValue) 参数说明: currentValue: 必须,当前元素的值 index: 可选,当前元素的索引值 arr: 可选,当前元素属于的数组对象 thisValue: 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。 返回值: 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

    1. let myTest = ['a','b','c','d'];
    2. console.log('-----Map------')
    3. let getValue = myTest.map((item,index,arr)=>{
    4. console.log(item,index,arr)
    5. return item;
    6. })
    7. console.log(getValue)
    8. Array.prototype.myMap = function(fun,thisValue=window){
    9. if(typeof fun !== 'function'){
    10. throw new Error(fun+'不是一个function')
    11. }
    12. if([null,undefined].includes(this)){
    13. throw new Error('this 是null 或者 undefined')
    14. }
    15. let arr=[];
    16. for (let i = 0; i < this.length; i++) {
    17. arr[i] = fun.call(thisValue,this[i],i,this);
    18. }
    19. return arr;
    20. }
    21. console.log('-----myMap------')
    22. let myGetValue = myTest.myMap((item,index,arr)=>{
    23. console.log(item,index,arr)
    24. return item;
    25. })
    26. console.log(myGetValue)

    image.png