What is the result of this expression?
["1", "2", "3"].map(parseInt);
//map的用法是:对于数组中的每一个元素都调用map里面的回调函数,将结果返回形成新的数组。
结果竟然是:
[1, NaN, NaN]
原来map的传入给回调函数的参数有三个:元素、元素下标和数组。用下面的方法就一目了然了。
["1", "2", "3"].map(function() { console.log(arguments); });
结果如下:
["1", 0, ["1", "2", "3"]]
["2", 1, ["1", "2", "3"]]
["3", 2, ["1", "2", "3"]]
而parseInt所需要的参数为两个,第一个是需要转化为整数的输入,第二个是可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
所以,就出现了上面的一幕。
正确的方法应该怎么办呢?
其实很简单:
["1", "2", "3"].map(function(str) {
return str - 0;
});
分享到:
相关推荐
array.prototype.map 符合ES5规范的Array.prototype.map填充程序/ polyfill / replacement可以使用到ES3。 该软件包实现了接口。 它可以在ES3支持的环境中工作并符合。 因为Array.prototype.map依赖于接收方(“ ...
array.prototype.at 符合ESnext规范的Array.prototype.at / polyfill / replacement可以使用到ES3。 该软件包实现了接口。 它在ES3支持的环境中工作,并符合建议的。 因为Array.prototype.at依赖于接收方( this...
Array.Copy 方法,介绍Array.copy的几种用法
前言 从经典的 for 循环到 forEach() 方法,用于迭代数据集合的各种技术和方法...array.map(function(currentValue,index,arr), thisValue) currentValue:必须。当前元素的值 index:可选。当期元素的索引值 ar
多种数组排序算法类 CMySort_Array.h
map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值组合起来形成一个新数组。 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引则...
里面有三个js文件,都是需要引入的。具体的方法,可以看源码。
array.prototype.flatmap 符合ESnext规范的Array.prototype.flatMap填充程序/ polyfill / replacement可以使用到ES3。 该软件包实现了接口。 它在ES3支持的环境中工作,并符合建议的。 因为Array.prototype.flatMap...
array.prototype.values 符合ES2015规范的Array.prototype.values匀场/填充/替换值可一直使用到ES3。 该软件包实现了接口。 它可以在ES3支持的环境中工作并符合。 因为Array.prototype.values取决于接收方(“ ...
数组的使用
地图字串 Array.map用于字符串。安装npm install map-string用法const mapString = require ( "mapString" ) ;mapString ( "abcd" , ( val ) => { if ( val === "b" ) return "!" return val} ) ;//=> 'a!cd'原料药...
array.prototype.flat 符合ES2019规范的Array.prototype.flat填充/填充/替换,可向下使用到ES3。 该软件包实现了接口。 它在ES3支持的环境中工作,并符合建议的。 因为Array.prototype.flat依赖于接收方( this值)...
array.m
array.prototype.indexof 符合ES2015规范的shim / polyfill / replacement的Array.prototype.indexof ,可工作到ES3。 该软件包实现了接口。 它可以在ES3支持的环境中工作并符合。 因为Array.prototype.indexOf...
arguments在JavaScript语法中是函数特有的一个对象属性(Arguments对象),用来引用调用该函数时传递的实际参数。
发现大多人都用了Array.prototype.slice.call(argments,0),一直不明白这句是干什么的。而昨天温习了slice()方法,再参考Function.call(thisArg[, arg1[, arg2[, ...]]]),还是不得而知(我脑筋转得慢:|)。
QueryArray.java
《LabVIEW 8.20从入门到精通》配书光盘范例:While循环_Build Array.vi
Phased.Array.Antenna.Handbook。相控阵天线手册。artech house出版社。