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 相关文章推荐
简体中文转换繁体中文(实现代码)
Dec 25 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
js完美解决IE6不支持position:fixed的bug
Apr 24 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
Jul 12 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
Jul 18 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 Javascript
jQuery 判断元素整理汇总
Feb 28 Javascript
动态加载权限管理模块中的Vue组件
Jan 16 Javascript
vue配置多页面的实现方法
May 22 Javascript
JavaScript中常用的简洁高级技巧总结
Mar 10 Javascript
jquery简易手风琴插件的封装
Oct 13 jQuery
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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
PHP 魔术函数使用说明
2010/05/14 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
Python二分法搜索算法实例分析
2015/05/11 Python
python实现数据图表
2017/07/29 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
struct与class的区别
2014/02/03 面试题
大学生个人求职信范文
2013/09/21 职场文书
自荐信的两点禁忌
2013/10/30 职场文书
初中英语教学反思
2014/01/25 职场文书
节水口号标语
2014/06/19 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
学习三严三实心得体会
2014/10/13 职场文书
初一数学教学反思
2016/02/17 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
为什么node.js不适合大型项目
2021/04/28 Javascript
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫