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 相关文章推荐
jquery中使用ajax获取远程页面信息
Nov 13 Javascript
js事件(Event)知识整理
Oct 11 Javascript
JavaScript 学习笔记之变量及其作用域
Jan 14 Javascript
javascript的BOM
May 03 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
Jan 12 Javascript
JavaScript实现类似淘宝的购物车效果
Mar 16 Javascript
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
vue实现点击隐藏与显示实例分享
Feb 13 Javascript
javascript实现动态时钟的启动和停止
Jul 29 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
May 15 Javascript
js实现时间日期校验
May 26 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
层叠菜单的动态生成
2006/10/09 PHP
可以在线执行PHP代码包装修正版
2008/03/15 PHP
PHP 实用代码收集
2010/01/22 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
SQL Server面试题
2013/04/04 面试题
DataReader和DataSet的异同
2014/12/31 面试题
为什么要用EJB
2014/04/17 面试题
社团文化节邀请函
2014/01/10 职场文书
酒店管理求职信范文
2014/04/06 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
节约用水演讲稿
2014/05/21 职场文书
庆元旦活动总结
2014/07/09 职场文书
心灵点滴观后感
2015/06/02 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
详解Django的MVT设计模式
2021/04/29 Python
Python中三种花式打印的示例详解
2022/03/19 Python