您的位置:首页 > 其它

map方法学习,封装函数--实现Array.prototype.map()的功能

2017-05-14 12:04 801 查看

封装函数–实现Array.prototype.map()的功能

Array.prototype.map( )这个方法是很有使用价值的,可以省下循环的步骤,处理数组中的每个元素,同时返回一个新的数组。我使用闭包封装了一个方法来实现类似的功能。

Array.prototype.map()方法

首先看一下Array.prototype.map()方法

map() 方法创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数。

map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新数组。

//map方法
var data = [10, 20, 30, 40];
var roots = data.map(function (ele) {
return ele / 10;
});
console.log(roots);//[1,2,3,4]
console.log(data);//[10, 20, 30, 40]


封装函数实现Array.prototype.map()方法

下面是实现map方法的函数封装。

暂时只是实现了基础功能,具体还有很多优化可以做。

function myMap(data, fn) {
var arg = [];
for (var i = 0; i < data.length; i++) {
(function (ele, fn) {
//每一个元素处理后放入新数组
arg.push(fn(ele));
})(data[i], fn);
}
return arg;
}
var data = [10, 20, 30, 40];
var roots= myMap(data, function (ele) {
return ele / 10;
});
console.log(roots);//[1,2,3,4]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐