js parseInt和map函数

今天看了一个js的题目["1","2","3"].map(parseInt),看到后脑海中浮现的答案是[1,2,3],但是看到正确答案后蒙了,不知道为什么答案会是[1,NaN,NaN],看了解释(http://developer.51cto.com/art/201504/474298_2.htm)但是还是没明白,没办法,只好重新无看下parseInt和map函数了。

1、parsrInt()

以前一直只有用到parseInt(x),返回一个整数,但是今天重新学习后才知道原来parseInt还有一个可选参数

parseInt(string, radix)
参数 描述
string 必需。要被解析的字符串。
radix
可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

radix表示string的基数,当radix存在时,string以radix基数解析,当radix为0或者无时,根据string来解析,"0x" 开头,以16进制解析,“0”开头,以十进制或8进制解析,1-9开头,以十进制解析

2、map()

map是对数组的每一个元素调用回调函数并返回一个包含结果的数组,有三个参数,其中一个可选参数

array1.map(callbackfn[, thisArg])
参数 定义
array1 必需。一个数组对象。
callbackfn 必需。一个接受**最多**三个参数的函数。对于数组中的每个元素,‘map‘ 方法都会调用 ‘callbackfn‘ 函数一次。
thisArg 可选。可在 ‘callbackfn‘ 函数中为其引用 ‘this‘ 关键字的对象。如果省略 ‘thisArg‘,则 ‘undefined‘ 将用作 ‘this‘ 值。

map中回调函数的语法:function callbackfn(value, index, array1),可使用最多三个参数来声明回调函数。

第一参数value,数组元素的值;第二个参数index,数组元素的数组所以;array1,包含该元素的数组对象。

因此,["1","2","3"].map(parseInt)等于[parseInt(1,0),parseInt(2,1),parseInt(3,2)]

parseInt(1,0)//radix为0,1十进制为1

parseInt(2,1)//radix小于2,返回NaN

parseInt(3,2)//radix为2,3的二进制NaN

时间: 2024-08-02 15:23:44

js parseInt和map函数的相关文章

underscore.js 分析6 map函数

作用:通过转换函数(iteratee迭代器)映射列表中的每个值产生价值的新数组.iteratee传递三个参数:value,然后是迭代 index. _.map([1, 2, 3], function(num){ return num * 3; }); => [3, 6, 9] _.map({one: 1, two: 2, three: 3}, function(num, key){ return num * 3; }); => [3, 6, 9] _.map([[1, 2], [3, 4]],

JS中的map()函数

map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值. 传递给map()的函数的调用方式和传递给forEach()的函数的调用方式一样.但传递给map()的函数应该有返回值.注意:map()返回的是新数组:它不修改调用的数组. 举个例子: 要求:为数组 arr 中的每个元素求二次方.不要直接修改数组 arr,结果返回新的数组 实现: function square(arr){ return arr.map(function(item) {  return i

js中的map函数

方便数组操作,返回处理后的数组 三个参数:当前元素,当前元素下标,当前map的数组 arr = [{ a: 1 }, { a: 2 }, { a: 3 }]; arr.map( (arg, arg2, arg3) => { console.log(arg,arg2,arg3);return arg['a']}) 原文地址:https://www.cnblogs.com/guofan/p/9579686.html

jQuery——map()函数以及它的java实现

map()函数小简介 map()函数一直都是我认为比较实用的函数之一,为什么这么说呢? 先来考虑一下,你是否碰到过以下场景:需要遍历一组对象取出每个对象的某个属性(比如id)并且用分隔符隔开 我想你一定有碰到过吧!因为我已经碰到过很多次了,这就是map()函数的一个典型的适用场景 不仅在前台,后台也是(所以后面我在java中也简单实现了这么一个方法),下面就看看吧 map()函数实例 在jQuery中,如.each()一样,.map()函数也有两种形式:一种是提供给jQuery对象用的.map(

Js笔试题之parseInt()和.map()

parseInt()的几个例子 var b = parseInt("01"); alert("b="+b); var c = parseInt("09/08/2009"); alert("c="+c); 结果:b=1,c=0 parseInt()用来解析字符串,返回整数,有几个特点: 1.无视被解析字符串最前和最后的空格,即:" 111 "和"111"是一样的 2.正规格式是parseI

JavaScript中map函数和filter的简单举例(转)

js的数组迭代器函数map和filter,可以遍历数组时产生新的数组,和python的map函数很类似1)filter是满足条件的留下,是对原数组的过滤:2)map则是对原数组的加工,映射成一一映射的新数组var xx = [1, 2, 5, 7];function pp(x){return x % 2;}function px(x){return x % 2;}var m = xx.map(pp);console.log("m = " + m);var f = xx.filter(p

原生JS forEach()和map()遍历的区别以及兼容写法

一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input. 3.匿名函数中的this都是指Window. 4.只能遍历数组. 1.forEach() 没有返回值. arr[].forEach(function(value,index,array){ //do something }) 参数:value数组中的当前项,

Google的分布式计算模型Map Reduce map函数将输入分割成key/value对

http://www.nowamagic.net/librarys/veda/detail/1768 上一篇 大规模分布式数据处理平台Hadoop的介绍 中提到了Google的分布式计算模型Map Reduce,这里再单独拿出来了解一下. 并行计算简介 计算机的早期阶段,程序都是serial(连续的),类似于批处理程序. 并行计算的程序中,进程将一个任务分割成多个部分parts,每个“部分“都是能够并行处理的,每个“部分”可以同时运行在不同的cpu上,这些cpus可以是同一台机器上,也可以是通过

JS的document.links函数使用示例

? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS的document.links函数使用示例</title> </head> <body> <img src="planets.gif" width="145" height="126" usemap=