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 本页面传值实现代码
May 17 Javascript
javascript中关于&& 和 || 表达式的小技巧分享
Apr 10 Javascript
jQuery移动web开发中的页面初始化与加载事件
Dec 03 Javascript
ionic 自定义弹框效果
Jun 27 Javascript
JavaScript正则表达式和级联效果
Sep 14 Javascript
react 实现页面代码分割、按需加载的方法
Apr 03 Javascript
详解微信小程序自定义组件的实现及数据交互
Jul 22 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
Nov 12 Javascript
小程序中设置缓存过期的实现方法
Jan 14 Javascript
Vue发布订阅模式实现过程图解
Apr 30 Javascript
谈谈JavaScript中的函数
Sep 08 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
php 表单数据的获取代码
2009/03/10 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
python模糊图片过滤的方法
2018/12/14 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
学生会主席事迹材料
2014/01/28 职场文书
传播学专业毕业生自荐书
2014/07/01 职场文书
个人自荐书范文
2015/03/09 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
导游词之河北邯郸
2019/09/12 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python
Windows server 2016服务器基本设置
2022/08/14 Servers