let arr = [10.18, 0, 10, 25, 23];
arr = arr.map(parseInt);
console.log(arr) //[10, NaN, 2, 2, 11]
map相当于迭代或者循环遍历每一项。
arr = arr.map((item, index) => {
// 循环遍历数组中的某一项就会触发回调函数
// 每一次还会传递当前项和当前的索引
)
parseInt特点:对于输入的值先转换成字符串,然后再从第一个字符开始查找数字,直到遇到非数字字符,就停止。
parseInt([value], [radix])
- [radix]是一个进制,不写或者写0默认都按照十进制处理(特殊情况,如果value是以0x开头,则默认值不是十进制而是16进制)
- 进制有一个取值的范围: 2~36之间,如果不在这之间,整个程序运行结果一定是NaN。
- 当parseInt的[value]和[radix]都有值的时候,parseInt([value], [radix])的操作过程是,把value里面的值看成是radix进制,再最后转成十进制输出。例如parseInt(‘10’, 2),’10’看成2进制的
- parseInt(‘10.18’, 0(10)) 从字符串左侧第一个字符开始查找,找到符合[radix]进制的值(遇到一个不合法的,则停止查找),把找到的值变为数字,再按照[radix]进制转换为十进制
parseInt(‘12px12’) = 12;
parseInt(null) = NaN;
- parseInt(‘10.18’, 0) => ‘10’->10 转换为十进制还是 10 10
- parseInt(‘0’, 1) =>NaN 没有1进制
- parseInt(‘10’, 2) => ‘10’ => 12^1+02^0 = 2 2
- parseInt(‘25’, 3) => 符合三进制的0、1、2的字符 =>’2’ => 23^0 = 21 = 2 2
- parseInt(‘23’, 4) => 符合四进制0~3 => ‘23’ => 24^1 + 34^0 = 8+3 = 11 11
如何把一个值转化为十进制?
- 147(八进制) => 十进制
[位全值: 每一位的权重,个位是0,十位是1 …]
1 4 7 => 18^2+ 48^1 + 7*8^0
- 12.23(四进制) => 十进制
14^1+24^0+24^-1 + 24^-2
4^0 =1;
4^-1 = 1/4
4*-2 = 1/4^2