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]
// 字符转ascii码:用charCodeAt();
// ascii码转字符:用fromCharCode();
2.2
通常情况下,map方法中的callback函数只需要接受一个参数,就是正在被遍历的数组元素本身。这并不意味着map只给callback传了一个参数(会传递三个参数)。
["1","2","3"].map(parseInt);
你可能觉的会是[1, 2, 3]
但实际的结果是 [1, NaN, NaN]
通常使用parseInt时,只需要传递一个参数,但实际上,parseInt可以有两个参数,第二个参数是进制数,可以通过"alert(parseInt.length === 2)"来验证。
[].map(); 基本用法跟forEach方法类似:[].forEach((val,index,arr) => {})
map方法在调用callback函数时,会给它传递三个参数:当前正在遍历元素、元素索引、原数组本身。第三个参数parseInt会忽视,但是第二个参数不会,也就是说,parseInt把传过来的索引当成进制数来使用,从而返回了NaN。
["1","2","3"].map(parseInt);想要返回[1,2,3]应该如下使用:
function returnInt(e){
return parseInt(e,10);
}
["1","2","3"].map(returnInt);
// 此时会返回[1,2,3]
 
文章乃参考、转载其他博客所得,仅供自己学习作笔记使用!!!

JS自带的map()方法的更多相关文章

  1. js 自带的 map() 方法

    1. 方法概述 map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组. 2. 例子 2.1 在字符串中使用map 在一个 String  上使用 map 方法获取字符串中 ...

  2. js中数组的map()方法

    map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值 map()方法按照原是数组顺序以此处理元素 注意:map()不会对空数组进行检测 :不会改变原始的数组 实例: var nu ...

  3. js中的forEach/map方法

    // forEach方法 var data = [{ name: "程咬金", sex: "1", age: 26 }, { name: "程才&qu ...

  4. js 自带的 sort() 方法

    1. 方法概述 Array的sort()方法默认把所有元素先转换为String再根据Unicode排序, sort()会改变原数组,并返回改变(排序)后的数组 . 2. 例子 2.1 如果没有提供自定 ...

  5. js 自带的 reduce() 方法

    1.方法说明 , Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,其效果 ...

  6. JS的forEach和map方法的区别,还有一个$.each

    forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的.jQuery也有一个方法$.each(),长得和f ...

  7. JS的forEach和map方法的区别

    一.前言 forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的.jQuery也有一个方法$.each() ...

  8. js 自带的 filter()方法

    1. 方法概述 它用于把Array的某些元素过滤掉,然后返回剩下的元素组成的数组. 2. 例子 2.1 尝试用filter()筛选出素数: 'use strict'; function get_pri ...

  9. jQuery与JS中的map()方法使用

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

随机推荐

  1. MySQL中的聚集索引和辅助索引

    MySQL中的聚集索引和辅助索引 当你定义一个主键时,innodb存储引擎就把他当做聚集索引 如果你没有定义一个主键,则innodb定位到第一个唯一索引,且改索引的所有列值均为非空,就将其当做聚集索引 ...

  2. JS 获取当前定位

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Linux安装redis logstash

    一.安装redis tar -zxvf redis-3.2.8.tar.gz cd redis-3.2.8 make  && make install PREFIX=/usr/loca ...

  4. Springboot问题解决记录

    本随笔只为了方便查阅 如何将SpringBoot项目地打成一个war包: 传送门:https://blog.csdn.net/zhoucheng05_13/article/details/779152 ...

  5. Linux就该这么学——新手必须掌握的命令之文件目录管理命令组

    touch命令 用途 : 用于创建空白文件或设置文件的时间 格式 : touch [选项] [文件] 参数 作用 -a 仅修改”读取时间”(atime) -m 仅修改”修改时间”(mtime) -d ...

  6. php 连接sqlserver

    本地环境windows 10+phpstudy2016+ SQL Server 2008 R2 x86+php7.0查看自己sql server 多少位可以在新建查询里输入 select @@VERS ...

  7. Java设置时区

    TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));

  8. 怎样在 js 中实现 反转字符串 的功能?

    "string".split('').reverse().join('');

  9. 怎样解决在执行 vue init 时提示 "vue : 无法加载文件" 的问题?

    注意, 以下操作需要 以管理员身份 在 PowerShell 中进行, 不能是 CMD / Git Bash 等. 1. 以 管理员身份 运行 PowerShell 2. 执行 get-Executi ...

  10. Java 中使用serversocket通信

    1. 创建一个Java项目 TestMyServerSocket. 2. 创建一个包 com.weloglog.main 3. 创建一些使用到的类 程序启动类 MyServerSccket : 用来启 ...