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 相关文章推荐
List all the Databases on a SQL Server
Jun 21 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
Sep 01 Javascript
基于JavaScript 声明全局变量的三种方式详解
May 07 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 Javascript
AngularJS 指令的交互详解及实例代码
Sep 14 Javascript
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
vue.js实现备忘录功能的方法
Jul 10 Javascript
AngularJS 打开新的标签页实现代码
Sep 07 Javascript
Vue兼容ie9的问题全面解决方案
Jun 19 Javascript
一百行JS代码实现一个校验工具
Apr 30 Javascript
vue elementUI使用tabs与导航栏联动
Jun 21 Javascript
Javascript如何递归遍历本地文件夹
Aug 06 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通过分类列表产生分类树数组的方法
2015/04/20 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
js html实现计算器功能
2018/11/13 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
uniapp实现可滑动选项卡
2020/10/21 Javascript
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
Python中asyncio与aiohttp入门教程
2018/10/16 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
python 公共方法汇总解析
2019/09/16 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
中医药大学市场营销专业自荐信
2013/09/29 职场文书
小学班级特色活动方案
2014/08/31 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android