ES5 数组map()循环

ES5 数组map()循环

map()是es5里面数组的一个方法,可以循环数组中的每一项。
接受两个参数,第一个是函数,第二个是参数函数里面的this指向
map()函数会返回一个新的数组,原数组不会被改变。
用法如下:

let a = [1,4,2,9,4];
let b = a.map((item, i, arr) => {
    //console.log(item,i,arr);
    console.log('map',this);
    return item * 2;
});
console.log('a,b', a, b);

用自己的方法实现map()方法:

function myMap(fn, context) {
    //console.log(this);
    let mappedArr = [];
    let arr = this;
    for (let i = 0; i < arr.length; i++) {
      mappedArr.push(fn.call(context,arr[i], i, arr));
    }
    return mappedArr;
}

Array.prototype.myMap = myMap;

let mappedArr = a.myMap((item, i, arr) => {
    console.log('myMap:',item,i,arr);
    console.log('myMap',this);
    return item * 2;
},null);
console.log('a,mappedArr', a, mappedArr);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。