2[‘1‘, ‘2‘, ‘3‘].map(parseInt) what & why ?
Posted 沿着路走到底
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2[‘1‘, ‘2‘, ‘3‘].map(parseInt) what & why ?相关的知识,希望对你有一定的参考价值。
console.log(['1', '2', '3'].map(parseInt)) // [1, NaN, NaN]
/*
等同于 ["1", "2", "3"].map((str, index) => parseInt(item, index))
var new_array = arr.map(function callback(currentValue[, index[, array]]) // Return element for new_array [, thisArg])
这个callback一共可以接收三个参数,其中第一个参数代表当前被处理的元素,而第二个参数代表该元素的索引。
而parseInt则是用来解析字符串的,使字符串成为指定基数的整数。
parseInt(string, radix)
接收两个参数,第一个表示被处理的值(字符串),第二个表示为解析时的基数。
当radix 小于 2 或大于 36 ,或第一个非空格字符不能转换为数字,返回NaN
如果 radix 是 undefined、0或未指定的,
并且如果输入的 string以 "0x"或 "0X"(一个0,后面是小写或大写的X)开头
或以"0"开头,radix 是 10 (十进制)。
了解这两个函数后,我们可以模拟一下运行情况
parseInt('1', 0) //radix为0时,且string参数不以“0x”和“0”开头时,按照10为基数处理。这个时候返回1
parseInt('2', 1) //当radix 小于 2 或大于 36,返回NaN
parseInt('3', 2) //基数为2(2进制)表示的数中,最大值小于3,所以无法解析,返回NaN
map函数返回的是一个数组,所以最后结果为[1, NaN, NaN]
*/
let unary = fn => val => fn(val)
let parse = unary(parseInt)
console.log(['1.1', '2', '0.3'].map(parse)) // [1, 2, 0]
/*
等同于
console.log(['1.1', '2', '0.3'].map( item =>
return parseInt(item)
))
*/
以上是关于2[‘1‘, ‘2‘, ‘3‘].map(parseInt) what & why ?的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #418 (Div. 2)D
PHP build notes - WARNING: This bison version is not supported for regeneration of the Zend/PHP pars