JS-day3 +闭包

map 函数 :

数组利用map函数迭代执行函数,高度抽象化,简化流程


JS-day3 +闭包_第1张图片
map函数

reduce方法


JS-day3 +闭包_第2张图片
reduce函数

*****************用法     reduce可以理解 2个参数的迭代   实现更多的功能


JS-day3 +闭包_第3张图片
reduce用法


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决定保留还是丢弃该元素。


JS-day3 +闭包_第4张图片
filter函数

筛选数组重复元素,因为index 默认返回第一个元素位置,若有重复则不等

JS-day3 +闭包_第5张图片
index筛选数组

sort方法 会改变本数组,并返回本数组,默认以字符串方式比较,


JS-day3 +闭包_第6张图片
sort


JS-day3 +闭包_第7张图片
sort

闭包:

本质上,建立起函数内部与外部的桥梁    让函数外部可以访问内部的变量

你可能感兴趣的:(JS-day3 +闭包)