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。