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);