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 相关文章推荐
javascript实现的距离现在多长时间后的一个格式化的日期
Oct 29 Javascript
基于jQuery的计算文本框字数的代码
Jun 06 Javascript
javascript中[]和{}对象使用介绍
Mar 20 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
jquery动态加载select下拉框示例代码
Dec 10 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
Oct 14 Javascript
JavaScript实现图片滑动切换的代码示例分享
Mar 06 Javascript
form表单转Json提交的方法(推荐)
Sep 23 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
Jan 04 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
vue2.0 根据状态值进行样式的改变展示方法
Mar 13 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
Sep 02 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
77A一级收信机修理记
2021/03/02 无线电
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
js实现图片实时时钟
2020/01/15 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
python编写实现抽奖器
2020/09/10 Python
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
工会工作先进事迹
2014/08/18 职场文书
音乐教师求职信范文
2015/03/20 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android