0%

自己动手实现系列 ---- Array.prototype.map()

原理

先看看 reducemap 的使用方法

1
2
let new_array = arr.map(function callback(currentValue[, index[,array) {/* Return element for new_array */ }[, thisArg])
let result = arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

实现

第一种用 for 实现

1
2
3
4
5
6
7
Array.prototype.myMap = function(callback, thisArg) {
let arr = [];
for (let i = 0; i < this.length; i++) {
arr.push(callback.call(thisArg, this[i], i, this));
}
return arr;
};

第二种用 reduce 实现

1
2
3
4
5
6
7
Array.prototype.myMap = function(callback, thisArg) {
let result = this.reduce((accumulator, currentValue, index, array) => {
accumulator.push(callback.call(thisArg, currentValue, index, array));
return accumulator;
}, []);
return result;
};
如果觉得不错请支持作者
------ 版权声明 ------

本文标题:自己动手实现系列 ---- Array.prototype.map()

文章作者:

发布时间:2020年03月24日 - 15:20

最后更新:2020年04月02日 - 03:20

原始链接:https://blog.lifesli.com/2020/03/24/do-it-yourselfery-map/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。