js 自带的 map() 方法全面了解


Posted in Javascript onAugust 16, 2016

1. 方法概述

map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

2. 例子

2.1 在字符串中使用map

在一个 String  上使用 map 方法获取字符串中每个字符所对应的 ASCII 码组成的数组:

var map = Array.prototype.map
var a = map.call("Hello World", function(x) { return x.charCodeAt(0); })
// a的值为[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

2.2 易犯错误

通常情况下,map 方法中的 callback 函数只需要接受一个参数(很多时候,自定义的函数形参只有一个),就是正在被遍历的数组元素本身。

但这并不意味着 map 只给 callback 传了一个参数(会传递3个参数)。这个思维惯性可能会让我们犯一个很容易犯的错误。

// 下面的语句返回什么呢:
["1", "2", "3"].map(parseInt);
// 你可能觉的会是[1, 2, 3]
// 但实际的结果是 [1, NaN, NaN]

// 通常使用parseInt时,只需要传递一个参数.但实际上,parseInt可以有两个参数.第二个参数是进制数.可以通过语句"alert(parseInt.length)===2"来验证.
// map方法在调用callback函数时,会给它传递三个参数:当前正在遍历的元素, 元素索引, 原数组本身.
// 第三个参数parseInt会忽视, 但第二个参数不会,也就是说,parseInt把传过来的索引值当成进制数来使用.从而返回了NaN.

/*
//应该使用如下的用户函数returnInt

function returnInt(element){
 return parseInt(element,10);
}

["1", "2", "3"].map(returnInt);
// 返回[1,2,3]
*/

参考 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map

以上这篇js 自带的 map() 方法全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js简单实现根据身份证号码识别性别年龄生日
Nov 29 Javascript
setInterval计时器不准的问题解决方法
May 08 Javascript
jQuery中prop()方法用法实例
Jan 05 Javascript
javascript折半查找详解
Jan 26 Javascript
javascript感应鼠标图片透明度显示的方法
Feb 24 Javascript
Jquery ajax请求导出Excel表格的实现代码
Jun 08 Javascript
js实现悬浮窗效果(支持拖动)
Mar 09 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
使用puppeteer破解极验的滑动验证码
Feb 24 Javascript
解决循环中setTimeout执行顺序的问题
Jun 20 Javascript
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 Javascript
JavaScript实战之带收放动画效果的导航菜单
Aug 16 #Javascript
js 自带的sort() 方法全面了解
Aug 16 #Javascript
JavaScript实战之菜单特效
Aug 16 #Javascript
深入理解js generator数据类型
Aug 16 #Javascript
js 创建对象 经典模式全面了解
Aug 16 #Javascript
js 上传文件预览的简单实例
Aug 16 #Javascript
js removeChild 方法深入理解
Aug 16 #Javascript
You might like
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
php中++i 与 i++ 的区别
2012/08/08 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
深入浅析python 中的匿名函数
2018/05/21 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python面向对象程序设计示例小结
2019/01/30 Python
Python通过Pillow实现图片对比
2020/04/29 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
宣传标语大全
2014/07/01 职场文书
入队仪式主持词
2015/07/04 职场文书
2016新年感言
2015/08/03 职场文书
合作意向书怎么写
2019/06/24 职场文书
如何通过cmd 连接阿里云服务器
2022/04/18 Servers
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技