ECMAscript5中的map
今天看到到这样一个问题:
["1", "2", "3"].map(parseInt) 执行结果是什么?
结果是[1,NAN,NAN],很出乎我的意料。。。。
人家给出的解释是这样的:
[1, NaN, NaN] 因为 parseInt 需要两个参数 (val, radix) 但 map 传了 3 个 (element, index, array)
然后再犀牛书上查了下map的API:
map()按照从小到大的顺序遍历array的序号,并为每一个元素调用一次f,对于序号i,调用时候带三个参数,f的返回值则存储在新数组的i处:
a[i] = f(array[i],i,array)
一旦map()将array中的每一个元素都传递给f,并将返回的结果保存到新数组中,则返回该新数组
我做了一下尝试:
["1", "2", "3"].map(parseInt(x,10)) //报错,我坑爹了,map()接受的是一个方法,不是执行结果
["1", "2", "3"].map(function(x){return parseInt(x,10)}) //这个结果是[1,2,3],是对的
["1", "2", "3"].map(function(x){return parseInt(x)}) //这个也是对的,因为parseInt默认的是10进制的,不过还是自己写靠谱,有时候0x开头的数字抽风
然后我查了下forEach,跟map介绍差不多,然后看到提到调用f(array[i],i,array),突然似乎明白了,原来每次调用的时候指定了传入的三个参数结果相当于这样:
parseInt("1",0)//1
parseInt("2",1)//NAN
parseInt("3",2)//NAN
我们可以这样试试:
["1", "0", "0"].map(parseInt) //返回[1, NaN, 0]
["1", "0", "2"].map(parseInt) //返回[1, NaN, NaN]
说明了问题是parseInt接受参数的问题了,查了下
parseInt第二个参数描述如下:
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
好吧,到此为止,问题清楚了
ECMAscript5中的map的更多相关文章
- 【转】hive优化之--控制hive任务中的map数和reduce数
一. 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务. 主要的决定因素有: input的文件总个数,input的文件大小,集群设置 ...
- Map java中的map 如何修改Map中的对应元素
Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象. Map的接口 Map ...
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
- Java中遍历Map集合的四种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- java8中的map和reduce
java8中的map和reduce 标签: java8函数式mapreduce 2014-06-19 19:14 10330人阅读 评论(4) 收藏 举报 分类: java(47) FP(2) ...
- zk框架中利用map类型传值来创建window,并且传值
@Command @NotifyChange("accList") public void clear(@BindingParam("id") String a ...
- python 中的map 详解
python中的map函数应用于每一个可迭代的项,返回的是一个结果list.如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理.map()函数接收两个参数,一个是函 ...
- 由实现JavaScript中的Map想到的
项目中要用到JavaScript中的Map数据类型,它不像JDK那样有自带的,怎么办?搜了找到一个不错的(http://darkmasky.iteye.com/blog/454749).用这个可以满足 ...
- perl编程中的map函数示例
转自:http://www.jbxue.com/article/14854.html 发布:脚本学堂/Perl 编辑:JB01 2013-12-20 10:20:01 [大 中 小] 本文介绍 ...
随机推荐
- Meta referrer标签的,可以防止CSRF的攻击
Meta referrer标签的简要介绍 在某些情况下,出于一些原因,网站想要控制页面发送给 server 的 referer 信息的情况下,可以使用这一 referer metadata 参数. 参 ...
- leecode第八十九题(格雷编码)
class Solution { public: vector<int> grayCode(int n) { vector<int> res; res.push_back(); ...
- Codeforces 939E - Maximize!
939E - Maximize! 思路: 贪心:最后的集合是最大值+前k小个 因为平均值时关于k的凹形函数,所以可以用三分求最小值 又因为后面的k肯定比前面的k大,所以又可以双指针 三分: #incl ...
- Jmeter - json参数处理
做一个接口测试,之前用的get请求,key-value形式传参. 后来开发改为了post请求,采用了json形式传参.额,之前也做json形式的传参,但是这次遇到了问题,在此写篇博客,方便大家,也方便 ...
- ubuntu 安装 firefox 的 jre plugin
https://www.java.com/en/download/help/enable_browser_ubuntu.xml Mozilla Firefox Become the root user ...
- SpringBoot集成TkMybatis插件
前提: 基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件. 在本篇总结教程,不在进行SpringBoot集成Mybatis的概述. ...
- 单细胞数据高级分析之构建成熟路径 | Identifying a maturation trajectory
其实就是另一种形式的打分. 个人点评这种方法: 这篇文章发表在nature上,有点奇怪,个人感觉创新性和重要性还不够格,工具很多,但是本文基本都是自己开发的算法(毕竟satji就是搞统计出身的). 但 ...
- English trip EM2-PE-6A Family Relationship Teacher:Taylor
课上内容(Lesson) What's your name? Where is your hometown? 你的家乡是哪里? Where do you come from? 你从哪里来? ...
- 一款好用的取色工具TakeColor
简介:TakeColor,一款还算好用的取色软件,一个很小很简洁的exe文件,无需安装 使用:打开exe文件后,使用“Alt + C” 组合键即可在鼠标悬停的位置上获取到颜色值,可以获取HTML.RG ...
- Django admin 管理工具
admin 组件的使用 Django 提供了基于 web 的管理工具.Django 自动管理工具是 django.contrib 的一部分. INSTALLED_APPS = [ 'django.co ...