Discuss
/
JavaScript
/
打卡交作业
打卡交作业
Topic source4的详细解说:
参考:
parseInt 和 Array.prototype.map()
传入
map()方法会调用callbackFn
方法,给map里的函数传入三个参数:
currentValue
数组中正在处理的当前元素。
index
数组中正在处理的当前元素的索引。
array:
map方法调用的数组。
接收
parseInt方法接收两个参数(所以map传入的第三个参数被省略):parseInt(string, radix) 解析一个字符串并返回指定基数的十进制整数,radix
是 2-36 之间的整数,表示被解析字符串的基数。
返回值为NaN的情况:
1. radix
小于 2
或大于 36
,或
2. 第一个非空格字符不能转换为数字
最终调用的是:parseInt(‘1’,0)为什么radix是0 ,不属于2-36还可以获得呢,是因为
如果
radix
是undefined
、0
或未指定的,JavaScript 会假定以下情况:
- 如果输入的
string
以0x
或0X
(一个 0,后面是小写或大写的 X)开头,那么 radix 被假定为 16,字符串的其余部分被当做十六进制数去解析。- 如果输入的
string
以 "0
"(0)开头,radix
被假定为8
(八进制)或10
(十进制)。具体选择哪一个 radix 取决于实现。ECMAScript 5 澄清了应该使用 10 (十进制),但不是所有的浏览器都支持。因此,在使用parseInt
时,一定要指定一个 radix。- 如果输入的
string
以任何其他值开头,radix
是10
(十进制)。
parseInt(‘2’,1)返回NaN是因为范围不满足;
parseInt(‘3’,2)返回NaN是因为radix指定了2进制,但是3不是二进制数的正确表达。
- 1
熊熊爱吃冰鲜鱼
1.利用reduce()求积:
2.练习:不要使用JavaScript内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数:
3.请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam','LISA', 'barT'],输出:['Adam','Lisa', 'Bart']。
4. 小明希望利用map()把字符串变成整数
小明做法不成功的原因:每次送入parseInt()的有3个元素:element, index和array本身。parseInt本身是有2个参数的:string和radix,所以element和index纳入了函数运算,array被抛弃了。parseInt(‘1’,0)表示1的数字值所以输出是1。parseInt(‘2’,1)返回NaN因为radix是2到32之间的整数不能是1。parseInt(‘3’,2)也是NaN因为2进制下没有3这样的表达。我们的修改是通过明确定义只有一个元素用于函数计算(element)。