545 parseInt解析

/*

  • 数组的迭代方法(遍历数组中的每一项做一些特殊的处理)
  • forEach 遍历数组每一项(数组中有多少项,就会触发执行多少次回调函数,每一次把迭代的当前项和当前项的索引传递给回调函数)
  • map 和forEach类似,只不过支持返回值,回调函数中的返回值会把当前迭代的这一项替换掉
  • find 迭代数据每一项的时候,只要有一项在回调函数中返回TRUE则找到内容,后面不会在迭代了,返回的是找到的这一项
  • filter 迭代每一项的时候,回调函数中所有返回TRUE的这一项获取到,以新数组返回(包含筛选出来的所有项)
  • every 和some类似,但是回调函数都返回TRUE,整体才是TRUE
  • some 验证数组中是否存在符合某个筛选条件的,只要有一个符合结果就是TRUE
  • reduce 上一次回调函数中运算的结果会作为下一次处理的信息
  • let total=arr.reduce(function(n,item){
  •   return n+item;
    
  • },0);
    */

let arr = [1, 2, 3, 4];
// arr = arr.map(function (item, index) {
// 	// console.log(item, index);
// 	return item * index; //=>返回结果替换数组中当前迭代的这一项
// });
// console.log(arr);

arr = arr.map(parseInt);
console.log(arr); // [1, NaN, NaN, NaN]


// parseInt([value]): 把value转换为数字,要求value是字符串(不是字符串先默认转换为字符串),从字符串左边开始查找,找到有效数字字符转换为数字(遇到一个非有效的数字字符,则停止查找)
// parseInt([value],[radix]):首先[value]是这个字符串,他是把个值看做[RADIX]这个进制,然后最后转换为10进制的数字
// radix省略或者为0,则radix默认按照10进行处理(特殊:字符串以 0x/oX 开头,radix默认按照16进行处理)
// radix不在2~36之间,最后结果都为NaN
parseInt(1,0) // =>1
parseInt(2,1) // =>NaN
parseInt(3,2) // =>NaN
parseInt(4,3) // =>NaN

parseInt('23461', 5);
// 【5进制只能是 0~4】 '234' 看做 5进制,转换为10进制
// 4 + 3 * 5 + 2 * 5 * 5 = 69

parseInt('231', 3);
// 3进制只能是 0~2  所以查找到3的时候,发现已经不是3进制的范畴了,则不再继续查找
// 把2当做3进制,最后转换为十进制
// 2 * 3 ^ 0 = 2

parseInt('2AF5', 16); // =>把'2AF5'当做16进制,最后转换为10进制
// 5 * 1 + 15 * 16 + 10 * 16 * 16 + 2 * 16 * 16 * 16 = 10997
// '72.45'  -> 58.578125
// 2 * 1 + 7 * 8 + 4 * (1 / 8) + 5 * (1 / (8 * 8))

posted on 2020-10-17 14:45  冲啊!  阅读(125)  评论(0编辑  收藏  举报

导航