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 XML操作 封装类
Jul 01 Javascript
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
Javascript 类与静态类的实现
Apr 01 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
Jul 31 Javascript
TextArea不支持maxlength的解决办法(jquery)
Sep 13 Javascript
JavaScript中OnLoad几种使用方法
Dec 15 Javascript
如何利用AngularJS打造一款简单Web应用
Dec 05 Javascript
javascript创建含数字字母的随机字符串方法总结
Aug 01 Javascript
node.js实现博客小爬虫的实例代码
Oct 08 Javascript
微信小程序 点击控件后选中其它反选实例详解
Feb 21 Javascript
vue数组对象排序的实现代码
Jun 20 Javascript
微信小程序开发之左右分栏效果的实例代码
May 20 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
PHP之短标签开启设置
2013/06/17 PHP
php数组使用规则分析
2015/02/27 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
jquery 学习笔记一
2010/04/07 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
基于JS实现checkbox全选功能实例代码
2016/10/31 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
2019/08/27 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
python3.4中清屏的处理方法
2020/07/06 Python
python调用私有属性的方法总结
2020/07/24 Python
Python常用类型转换实现代码实例
2020/07/28 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
大专生工程监理求职信
2013/10/04 职场文书
节约用水标语
2014/06/11 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
教学督导岗位职责
2015/04/10 职场文书
酒店员工手册范本
2015/05/14 职场文书