2、[‘1‘, ‘2‘, ‘3‘].map(parseInt) what & why ?

本文详细探讨了JavaScript中的parseInt函数,通过实例展示了如何处理字符串转数字,并解释了其参数和边界条件。同时,对比了map函数在处理数组时的行为,最后给出了两个示例代码片段和运行结果。
摘要由CSDN通过智能技术生成

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)

        }))

    */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值