无意看到一个方法:

["1", "2", "3"].map(parseInt);

返回值为:[1, NaN, NaN]。

好奇查了下map方法的用法如下:map 方法会给原数组中的每个元素(必须有值)都调用一次 callback 函数。callback 每次执行后的返回值组合起来形成一个新数组。callback函数只会在有值的索引上被调用,那些从来没被赋过值或者使用delete删除的索引则不会被调用。

也就是数组都调用了parseInt方法,但是为什么返回的值却不同呢。因为callback 函数会被自动传入三个参数:数组元素,元素索引,原数组本身。而parseInt方法是可以接收两个参数的,第一个为被转化的值,第二个为被转化值的进制。map自动传入的第二个参数被当做进制了,也就是数组的index被当做进制数了。当进制数为0时,默认为10进制,故结论数组第一个值为1,。当parseInt的进制参数小于2或者大于36,就返回NaN,因此第二个值为NaN。第三个值为NaN的原因是相当于执行了parseInt("3","2"),而2进制下数字3是不存在的,也返回了NaN。

参考链接:

https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/Array/map

http://www.w3school.com.cn/js/jsref_parseInt.asp

转载于:https://www.cnblogs.com/newyear/p/3542785.html

js数组的map方法以及parseInt方法相关推荐

  1. js数组截取方式splice()和slice()方法

    js数组截取方式splice()和slice()方法 1.splice() splice() 方法可以添加元素.删除元素,也可以截取数组片段.删除元素时,将返回被删除的数组片段,因此可以使用 spli ...

  2. JS数组转字符串(3种方法) arrays.join(“-“)把数组使用-分割为字符串

    JS数组转字符串(3种方法) JavaScript 允许数组与字符串之间相互转换.其中 Array 方法对象定义了 3 个方法,可以把数组转换为字符串,如表所示. Array 对象的数组与字符串相互转 ...

  3. html怎么创建数组,js创建数组的三种方法 JS数组去重的几种常见方法

    JS数组有哪几种定义方式? js 里创建一个数组 那几种方式有什么区别吗?a = new Array(); b = []; 性能问题吗?? function clear(arr) { // 1 如何获 ...

  4. JS数组合并的7种常见方法

    前言 项目过程中,经常会遇到 JS 数组合并的情况,时常为这个纠结.这里整理一下 1.ES6解构 [-arr, -arr2] 会生成新的数组 let arr = [1, 2] let arr2 = [ ...

  5. JS数组转字符串(3种方法)和字符串转数组(2种)

    一:数组转字符串(3种方法) 同样是数组转字符串,toString(),toLocaleString(),join(),join(',')的区别是什么? JavaScript 允许数组与字符串之间相互 ...

  6. JS数组转字符串(3种方法)

    JavaScript 允许数组与字符串之间相互转换.其中 Array 方法对象定义了 3 个方法,可以把数组转换为字符串,如表所示. 数组方法 说明 toString() 将数组转换成一个字符串 to ...

  7. JS 数组转字符串的4种方法

    前言:在项目过程中,我们会有很多情况会遇到我们拿到的的是一个数组的情况,但是后台可能需要的是一个以","分割的字符串,那我们有哪些方法进行转换呢? 1.我们首先for循环这个数组, ...

  8. js数组的map方法

    map():返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,map()方法按照原始数组元素顺序依次处理元素 map方法会给原数组中的每个元素都按顺序调用一次callback函数,call ...

  9. js 数组移除_JS某些封装方法

    js中的一些封装方法 1.首先var一个数组 然后创建一个函数,在函数里var一个新的空数组,利用for循环,在for循环里var一个下标 i=形参的长度-1 设置i>=0 i--. 在for循 ...

最新文章

  1. python---基础知识回顾(五)(python2.7和python3.5中的编码)
  2. mysql 字段属性命令_mysql 操作字段 命令
  3. tcp_nodelay memcached java_TCP_NODELAY 和 TCP_NOPUSH
  4. 老年计算机音乐,老年音乐影集相机V1.2.5
  5. 微软同步框架入门之五--使用WCF同步远程数据
  6. Ext Gantt Web甘特图--自定义任务树
  7. AndroidStudio_HttpServer类接收到数据以后_通过广播给对应Activity发送接收到是远程服务器的数据---Android原生开发工作笔记226
  8. python经典实例pdf-Python机器学习经典实例_PDF电子书
  9. 白话文阐述openTSDB
  10. JAVA--set用法
  11. 项目管理中,制定项目进度计划有何意义?
  12. 会议及作用篇--项目管理(十三)
  13. 一文教你如何对接【支付宝】支付接口,网友:666啊!
  14. tomcat配置ssl证书
  15. kubernetes快速切换集群和名称空间
  16. 科普:Flutter应用打包、修改图标、修改启动页和app名字、加固后重新V1V2签名
  17. ubuntu更新过程中出现错误:校验数字签名时出错。此仓库未被更新,下列签名无效
  18. STM32F107中断优先级分组配置
  19. Keras深度学习(2)-二分类问题之电影评论分类
  20. Kinect-Unity相关

热门文章

  1. 【Linux】一步一步学Linux——ifdown命令(153)
  2. c语言中英文翻译 毕业设计,c语言中英文翻译资料 本科毕业论文设计.doc
  3. 如何用python开发游戏_手把手教你用Python完成一个控制台小游戏-阿里云开发者社区...
  4. 高并发C/S的TCP版本golang实现
  5. factorybean与beanfactory
  6. iTerm2 保存日志
  7. 我的第一个oracle触发器
  8. 从一百篇文章中总结出的需求分析四步法
  9. 树形动态规划 - 树中距离之和
  10. java中ftp删除文件,Java 实现ftp 文件上传、下载和删除