原生js源码之Array数组map方法
2023-09-11 14:21:46 时间
map
方法创建一个新数组,其结果是该数组中的每个元素是执行一次提供的函数后的返回值。
语法:
var new_array = arr.map(callback(item[, index[, array]]))
说明
arr:原数组
callback:提供的要执行的函数
item:当前元素
index:当前索引
array:原数组
new_array:返回的数组
下面实现代码:
Array.prototype.myMap=function(callback){
//如果没有传入回调函数,则报错
if(!callback) throw new TypeError('undefined is not a function');
if (typeof callback !== 'function') {//传入的不是函数也报错
throw new TypeError(callback + " is not a function");
}
var res=[];//定义返回数组
for(var i=0,len=this.length;i<len;i++){
res.push(callback(this[i],i,this));//将函数的返回值添加到返回数组
}
return res;//返回结果
}
测试一下:
var arr = [1,3,5,7,9]
var res=arr.myMap(function(item,index,thisArr){
return item*2
});
console.log(res);
输出:
(5) [2, 6, 10, 14, 18]
相关文章
- JS 逆向 --- 过无限debugge、hook、js混淆还原、控制流混淆
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"@"
- Arcgis for Js实现graphiclayer的空间查询
- JS监听不到被操作后dom的事件,js动态生成的DOM绑定事件失效,解决方案
- Asp.Net中用JS中操作cookie的方法(源码实例)
- 【Vue/js】Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)
- 【JS】深拷贝与浅拷贝的区别,实现深拷贝的几种方法
- 【JS】defer / async
- JS——Map对象 Set对象
- JS模式:jq中简单的模式--》采摘自js设计(tomxu_version)
- JS教程之如何从 JavaScript 日期中添加或删除日期
- JS高阶---执行上下文栈
- 聊聊JS动画库:Velocity.js
- 《Node.js区块链开发》——1.2 什么是加密货币
- 《Node.js区块链开发》——2.7 参考
- js判断是否包含某个class
- JS: javascript 点击事件执行两次js问题 ,解决jquery绑定click事件出现点击一次执行两次问题
- 让 Node.js 支持 ES6 的语法
- js如何将汉字转化为拼音
- JS中的Map和Set实现映射对象
- 浅析Map和WeakMap有什么不同之处、强/弱引用的区别、WeakMap详解、map的缺点和使用WeakMap的好处
- JS学习第10天——ES5中面向对象(原型和原型链、forEach、map、filter、some、every、trim、Object.keys、Object.defineProperty方法的使用)
- js 字符及字符串
- 面试题:JS中map的陷阱
- js 中 Map/Set 集合