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 相关文章推荐
JSON JQUERY模板实现说明
Jul 03 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
Sep 21 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
Jan 23 Javascript
javascript 函数声明与函数表达式的区别介绍
Oct 05 Javascript
JS截取字符串常用方法详细整理
Oct 28 Javascript
js检测判断日期大于多少天的方法
May 04 Javascript
javascript中substring()、substr()、slice()的区别
Aug 30 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 Javascript
AngularJS基础 ng-keypress 指令简单示例
Aug 02 Javascript
JS沙箱模式实例分析
Sep 04 Javascript
Angular2 自定义表单验证器的实现方法
Dec 14 Javascript
JavaScript实现简单贪吃蛇效果
Mar 09 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删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
基于python历史天气采集的分析
2019/02/14 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
护理学毕业生求职信
2013/11/14 职场文书
集团薪酬管理制度
2014/01/13 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
大学生个人总结范文
2015/02/15 职场文书
人与自然观后感
2015/06/16 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
CSS的calc函数用法小结
2022/06/25 HTML / CSS
Python+pyaudio实现音频控制示例详解
2022/07/23 Python