1、forEach()
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。类似于军人接受检阅,但是检阅结束并不会返回任何东西,也不会改变原数组
注意: forEach() 对于空数组是不会执行回调函数的。
let arr = [1,2,3,4,5]
arr[].forEach(function(value,index,array){
//do something
})
a参数:value数组中的当前项, index当前项的索引, array原始数组;
b数组中有几项,那么传递进去的匿名回调函数就需要执行几次;
c理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是可以自己通过数组的索引来修改原来的数组;
arr.forEach(item => {
console.log(item)
})// 1 2 3 4 5
2、map()
有返回值,可以return 出来。比如说去超市买东西,你拿了一个物品清单,然后服务员帮你拿好东西,返回给你一个物品的新数组,但是对清单原数组不发生改变
arr[].map(function(value,index,array){
//do something
return XXX
})
参数:value数组中的当前项,index当前项的索引,array原始数组;
let goodsList = ['水蜜桃','酸奶','辣条']
let goods = goodsList.map(item => {
// do something
console.log(item) // 水蜜桃 酸奶 辣条
})
3、filter()
filter方法是对数据中的元素进行过滤,操作当前元素集,删除不匹配的元素,得到一个新的集合。让男生排队身高高于180的就归入到新数组中,最后返回一个里面装着所有180+的男生的数组,不改变原数组(根据某个条件查询数据时可以用,比如说后台管理系统的表格查询)
let arr = ['aa','bb','cc']
let newArr = arr.filter((item, index) => {
// 写需要的内容
})
4、reduce()
reduce主要是为了对所有数组进行累加,最后返回一个值,不改变原数组,类似让男生把排队把把身高加起来
let a =arr.reduce((prev, cur, index, arr) => {
console.log(prev,cur,index,arr) // 输出试一下就知道了
})
5、find() ->ie都不支持
你去找人想找一个180的男生帮你去搬砖,只要找到第一个就停止遍历,因为只要找一个,为了减少无用的操作,虽然其他方法也能实现同样的要过,但是最好用find()