map 函数 :
数组利用map函数迭代执行函数,高度抽象化,简化流程
reduce方法
*****************用法 reduce可以理解 2个参数的迭代 实现更多的功能
map和priseInt函数,map函数需要接3个参数,currentValue 第一个参数,数组中当前被传递的元素。index 第二个参数,数组中当前被传递的元素的索引。array 第三个参数,调用 map 方法的数组。parseInt()函数可解析一个字符串,并返回一个整数。语法parseInt(string, radix);string 必需。要被解析的字符串。radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。在知道了这两个函数的语法之后,再来看看小明的写法。
var arr = ['1', '2', '3'];
var r;
r = arr.map(parseInt);
因为map()接收三个参数,parseInt()接收两个参数,所以map的第三个参数被parseInt忽略了,这个不难理解,但是要注意了,map的第二个参数并没有被忽略。现在来分析下程序,假如现在执行arr的第一个元素,即'1';对应到map参数可知,此时传入map的第一个参数即为被传递的元素'1';第二个参数即为其索引0;这两个参数被传入parseInt中,即parseInt('1', 0);对应到上述parsent的参数规则可知,此时结果为1;同理,parseInt('2',1) //radix小于2 返回NaN,parseInt('3',2) //3是非法的二进制数,返回NaN
filter函数
和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
筛选数组重复元素,因为index 默认返回第一个元素位置,若有重复则不等
sort方法 会改变本数组,并返回本数组,默认以字符串方式比较,
闭包:
本质上,建立起函数内部与外部的桥梁 让函数外部可以访问内部的变量