forEach&map&filter&some&every

forEach & map & filter & some & every & reduce的使用

一、forEach

1. 语法:

1
arr.forEach(回调函数(item, index, array))

2. 特点:

① 帮忙写了一个for循环,循环次数为数组长度,每次遍历index++,将arr[index]作为item传入回调函数
特殊情况:在回调函数中执行 arr.pop()arr.shift() ,数组变短但是依然根据index的大小来遍历,导致遍历次数减半
② 可传入一个回调函数循环执行,回调函数可以使用数组的item,index,array三个参数

二、map

1. 语法:

1
arr.map(回调函数(item, index, array))

2. 相当于做了这么几件事:

① 创建了一个新数组
② 对数组中的每一项调用回调函数(可以使用item、index和array参数)
③ 无论回调函数返回什么都把返回值添加到这个数组中(如果没有返回值就添加undefined)
④ 返回这个新数组

三、filter

1. 语法:

1
arr.filter(回调函数(item, index, array))

2. 相当于做了这么几件事:

① 创建了一个新数组
② 对数组中的每一项调用回调函数(可以使用item、index和array参数)
③ 只要回调函数返回true,就把这一项添加到这个数组中(如果回调函数只有return true那么所有内容都会被添加到新数组中)
④ 返回这个新数组

四、some(类似于或)

1. 语法:

1
arr.some(回调函数(item, index, array))

2. 特点:

① 对数组中的每一项调用回调函数(可以使用item、index和array参数)
② 只要有一个回调函数返回true,跳出循环,整个some函数返回true,否则返回false

五、 every (类似于与)

1. 语法:

1
arr.every(回调函数(item, index, array))

2. 特点:

① 对数组中的每一项调用回调函数(可以使用item、index和array参数)
② 只要有一个回调函数没有返回true,跳出循环,整个some函数返回false,否则返回true

六、 reduce(对数组的项进行某种累积运算)

1. 语法:

1
arr.reduce(回调函数(上一步运算的结果total, item, index, array), 基数)

2. 特点:

① 第一次运算total的值取决于是否给了基数,如果有基数那么使用基数,如果没有则使用array的第一个值,然后将第二个值作为item。

② 回调函数return的值将作为下一步的total。