forEach
1.对于遍历数组,除了常用的for循环,还有forEach方法
2.不改变原数组
arr.forEach(function(value, index, array){})
value: 当前遍历对象
index: 当前序号
array:遍历的数组
值得注意的是在此方法中改变value并不能改变原数组,要想改变它,得使用array
var a= [1, 2, 3]; a.forEach((item, index, arr)=> { item= 5; }) console.log(a)//[1, 2, 3] var b= [4, 5, 6]; b.forEach((item, index, arr)=> { arr[index]= 9; }) console.log(b)//[9, 9, 9]
forEach方法也不能直接使用for循环中的break来中断跳出循环,但可以通过return来跳过当前遍历过程。
map
arr.map(function(item, index, array){})
1.数组映射,从原数组映射出一个新的数组
2.不改变原数组
var a= [1, 2, 3] console.log(a.map(function(item){ return item*item }))
输出: [1, 4, 9]
备注: 如果没有return则返回undefined
filter
arr.filter
(function(item, index, array){})
1.筛选出所有符合条件的元素,生成一个问题新数组,true符合
2.不改变原数组
every
arr.every(function(item, index, array){})
1.判断整个数组的所有元素是否都符合条件,若符合返回true,否则为false
2.不改变原数组
some
arr.some(function(item, index, array){})
1.判断整个数组是否有元素符合条件,若有返回true,否则为false
2.不改变原数组
find
arr.find(function(item, index, array){})
1.返回符合条件的第一个元素,没有则返回undefined
2.不改变原数组
reduce
arr.reduce(function(total, item, index, arr){}, initialValue)
1.reduce并不意味着进行减法运算,而是指数组元素从左到右一个接一个缩减
2.数组元素依次计算累加
3.不改变原数组
var a= [1, 2, 3] console.log(a.reduce(function(total, item, index, arr){ return total+item }, 100))